Skip to content

build(deps): bump cryptography from 49.0.0 to 50.0.0 - #1

Closed
dependabot[bot] wants to merge 451 commits into
mainfrom
dependabot/uv/cryptography-50.0.0
Closed

dependabot[bot] wants to merge 451 commits into
mainfrom
dependabot/uv/cryptography-50.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 11, 2026

Copy link
Copy Markdown

Bumps cryptography from 49.0.0 to 50.0.0.

Changelog

Sourced from cryptography's changelog.

50.0.0 - 2026-07-31


* **SECURITY ISSUE**:
  :func:`~cryptography.hazmat.primitives.serialization.pkcs7.pkcs7_decrypt_der`
  and its PEM and S/MIME variants no longer expose distinguishable errors or
  timing when unwrapping a ``RecipientInfo``'s ``encryptedKey``, which could
  act as a Bleichenbacher oracle for callers that decrypt untrusted messages.
  A random key is now substituted on failure, as described in :rfc:`3218`.
  Credit to **@X1AOxiang** for reporting the issue. **CVE-2026-69247**
* Deprecated Diffie-Hellman key exchange over finite fields (FFDH).
  Everything FFDH is deprecated, including the types in
  ``cryptography.hazmat.primitives.asymmetric.dh`` and loading FFDH keys or
  parameters with the key loading APIs. Users should migrate to a more
  modern key exchange algorithm.
* Added ``xof()`` class methods to
  :class:`~cryptography.hazmat.primitives.hashes.SHAKE128` and
  :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` for constructing
  algorithm instances configured for use with
  :class:`~cryptography.hazmat.primitives.hashes.XOFHash`.
* The :mod:`X.509 verification <cryptography.x509.verification>` APIs are now
  considered stable and are subject to our API stability policy.
* Added the :doc:`/cobblestone` recipe, an implementation of the
  Cobblestone-128 and Cobblestone-256 instantiations of the `C2SP
  chunked-encryption specification
  <https://c2sp.org/chunked-encryption>`_ for streaming authenticated
  encryption of large messages.
* Parsing a Signed Certificate Timestamp list now rejects encodings that
  carry trailing bytes after the list or after an individual SCT, instead of
  silently ignoring them.
* Added support for using :class:`~cryptography.x509.Name` as a field type in
  the :doc:`/hazmat/asn1/index` module.
* Loading a public key or an EC private key now rejects DER where the
  ``subjectPublicKey`` (or EC ``publicKey``) ``BIT STRING`` declares a non-zero
  number of unused bits, instead of silently ignoring it.
* Parsing a CRL entry's ``InvalidityDate`` extension now rejects a
  ``GeneralizedTime`` that carries fractional seconds or another non-DER form,
  matching the strict encoding already required for every other X.509 time
  field.
* :func:`~cryptography.x509.ocsp.load_der_ocsp_request` and
  :func:`~cryptography.x509.ocsp.load_der_ocsp_response` now reject a request
  or response whose ``version`` field is not ``v1``, the only version defined
  by RFC 6960, matching the version validation already performed when loading
  certificates, CSRs and CRLs.
* :class:`~cryptography.hazmat.primitives.hashes.XOFHash` is now supported
  when building against AWS-LC.
* HMAC (and therefore PBKDF2-HMAC) with SHA-3 hashes is now supported when
  building against AWS-LC.
* Diffie-Hellman (:doc:`/hazmat/primitives/asymmetric/dh`) is now supported
  when building against AWS-LC.
</tr></table> 

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

mimran-khan and others added 30 commits June 28, 2026 02:06
Add DEFAULT_MODEL and SLOT_DEFAULTS as ClassVar declarations to
ModelMetadataProvider Protocol so callers no longer need
type: ignore[attr-defined] when accessing provider attributes.

Add validate_base_url() helper that warns on malformed (non-http/https
or missing host) base URLs at model creation time, catching operator
misconfigurations early without raising.

Remove stale type: ignore[attr-defined] from constants.py.

Signed-off-by: mimran-khan <[email protected]>
(cherry picked from commit d0006e1)
Signed-off-by: Mohit Gupta <[email protected]>
(cherry picked from commit 3490e1a)
Signed-off-by: Mohit Gupta <[email protected]>
(cherry picked from commit 8fb192b)
…179-157

fix: address non-blocking reviewer nits from NVIDIA#178, NVIDIA#179, and NVIDIA#157
…e-exfiltration

feat(analyzer): detect cloud-storage exfiltration as E5
docs(mcp): surface install extra in quick-start and add stdio caveat
…scape

feat(analyzer): detect privileged container execution and escape primitives as PE5
…odel

docs(mcp): document HTTP transport trust model
Summary:
This fix allows SkillSpector to run in environments that already have a running event loop, preventing RuntimeError when asyncio.run() is called from within an existing loop.

Problem:
When running SkillSpector in environments like:
- Jupyter Notebooks
- LangGraph Studio
- FastAPI applications
- Any programmatic usage within async code
The call to asyncio.run() throws a RuntimeError: This event loop is already running and falls back to unfiltered static findings, silently disabling LLM analysis. The previous approach of detecting this state via error message substring matching is fragile and locale-dependent.

Solution:
1. Add  utility function in  that properly detects running loops using
2. When no running loop exists, fall back to  directly
3. When a loop is already running, offload execution to a separate thread with its own event loop via
4. Replace all  calls across all analyzer nodes with the new  helper
5. Remove unused asyncio imports from analyzer files

Test:
Add comprehensive unit tests for run_async covering:
- Normal execution without existing running loop
- Nested execution inside an already running loop
- Exception propagation from async coroutines
- Correct handling of async functions with await calls

Signed-off-by: zhenliemao <[email protected]>
supply_chain (SC1-SC6) covers package dependencies but not the container-image supply chain. A skill pulling images with verification disabled (--disable-content-trust, DOCKER_CONTENT_TRUST=0, --insecure-registry) accepts tampered images but scored 9/SAFE (NVIDIA#223). Add SC7_PATTERNS to the supply_chain analyzer (is_code_example filter) with pattern_defaults entries and 5 tests. --tls-verify=false is excluded since TM3's verify=False already covers it.

Signed-off-by: CharmingGroot <[email protected]>
…ider

Signed-off-by: Ram Dwivedi <[email protected]>

# Conflicts:
#	README.md
#	src/skillspector/providers/__init__.py
#	tests/nodes/test_meta_analyzer.py
#	tests/nodes/test_report.py
…ged-workload

feat(analyzer): detect privileged Kubernetes workload deployment as TM4
…utput-203

fix(cli): write concatenated multi-skill report to --output for non-JSON formats
fix(input): support scp-style SSH Git URLs in host validation
feat(ossf-scorecard): add ossf-scorecard github action integration
…-field

fix(mcp): treat allowed-tools as a permission declaration for LP3
feat(providers): local agent-CLI providers (claude/codex/gemini), no API key
docs: correct stale analyzer status and dangling references
mohgupta-ship-it and others added 19 commits September 7, 2026 17:22
Prepared by Codex for Mohit Gupta.

Signed-off-by: Mohit Gupta <[email protected]>
release: SkillSpector 2.11.1

Merging this PR that adds a timeout fix
Deduplicate coverage findings for the same source line and target, and
record one terminal event per source line with every emitted finding ID.
This prevents Markdown label/destination duplicates and distinct targets
on one line from generating fatal unaccounted_work errors.

Prepared by Codex for Mohit Gupta.

Signed-off-by: Mohit Gupta <[email protected]>
Distinguish simple runtime parameters from command substitutions and
complex parameter expansions in the bounded printf recognizer. Count
literal characters separately from already-consumed quoted spans so long
prose can finish parsing without a spurious span-limit exception.

Cover inline variables, skill invocations, PowerShell member access,
math notation, long quoted prose, and preserved destructive-command
detection and incomplete reconstruction accounting.

Prepared by Codex for Mohit Gupta.

Signed-off-by: Mohit Gupta <[email protected]>
Two defects, both of which made the check quietly answer "fine" about
declarations it had never looked at:

- `_USES_RE` matched only `owner/repo@`, so the three-segment
  `github/codeql-action/init` and `/analyze` in codeql.yml were never parsed.
  The path now allows subdirectories, and the release lookup trims back to the
  repository that owns the tags.
- github/codeql-action tags its latest release `codeql-bundle-v2.26.4`, which
  shares no numbering with the pinned v4.37.9, so the comparison returned "not
  newer" forever and the row read OK. The lookup now falls back to the tag list
  and takes the newest parseable version, and a row whose latest cannot be
  compared is CHECK FAILED rather than OK.

Three tests pin the behaviour; restoring the owner/repo-only pattern turns
them red.

Two pre-existing gate failures are fixed alongside, because the gate cannot be
green with them present:

- src/skillspector/state.py diverged from upstream in 185d610
  (SKILLSPECTOR_MAX_WORKFLOW_SECONDS) without a docs/DIVERGENCE.md row. It is
  the graph-wide half of the per-artifact budget row already registered above
  it, and is now registered with that reasoning.
- tools/check_dependency_freshness.py was already failing `ruff format
  --check` before this change; both touched files are now formatted.

Full gate green on Windows: 3969 passed, 39 skipped, 38 deselected, 4 xfailed.

Found while porting this checker into SanHsien/dashi-ppt-skill; the same fix
landed there and in SanHsien/agent-skills.

Co-Authored-By: Claude Opus 5 <[email protected]>
The workflow has failed on every run since b02d8ae (2026-09-05) because the
report carries 25 REVIEW UPDATE rows from upstream's pyproject.toml. The
2026-09-05 decision in docs/DECISIONS.md already ruled those informational --
the ruling just never reached the gate, so the monthly check was permanently
red with no exit, which trains everyone to ignore it including the rows that
are actionable.

gating_rows() now fails the run only for Action pins whose declaring workflows
are all fork-owned. Pins that appear in an upstream-owned workflow (ci.yml,
release.yml, scorecard.yml, update-pr-branches.yml) are upstream's to move, for
the same reason a `typer>=0.23.0` floor is: repinning them here states a
compatibility choice on upstream's behalf and is overwritten at the next sync.
Every row still appears in the report, and both section headings now say which
half gates.

Deferrals were the alternative and would have contradicted the ruling: entering
the 25 rows as "reviewed, not now" claims they are actionable-but-postponed,
and deferredLatest would expire them back to red as each package releases.

UPSTREAM_WORKFLOWS is a constant, so test_fork_owned_workflows_matches_git
cross-checks it against `git ls-tree` on the baseline commit and skips rather
than passing when that commit is unavailable. Mutation-verified: gating on all
rows again turns two tests red.

Gate green on Windows: 3973 passed, 39 skipped, 38 deselected, 4 xfailed;
`check_dependency_freshness.py --strict` now exits 0.

Co-Authored-By: Claude Opus 5 <[email protected]>
Anonymous api.github.com allows 60 requests an hour per address and hosted
runners share one, so past the limit every Action row's `latest` reads
`unknown` at once. That matters more here than elsewhere: after 0fe6f22 the
Action rows are the only half of this report that gates the run, so a silent
rate-limit would take the gate with it.

_github_json now sends `Authorization: Bearer` when GITHUB_TOKEN or GH_TOKEN
is set, and the workflow's check step gets `GH_TOKEN: ${{ github.token }}`;
the step previously ran without one while the Dependabot-listing step below it
had a token all along. Without a token it still works, just against the
anonymous limit.

Defect first spotted on the SanHsien/commerce-agents line; the same fix landed
in SanHsien/dashi-ppt-skill and SanHsien/agent-skills.

Gate green on Windows: 3974 passed, 39 skipped, 38 deselected, 4 xfailed.

Co-Authored-By: Claude Opus 5 <[email protected]>
…-accounting

fix: preserve partial coverage for runtime printf paths
Refresh PR NVIDIA#507 after merging NVIDIA#508 into its source branch. No source files changed.

Prepared by Codex for Mohit Gupta.

Signed-off-by: Mohit Gupta <[email protected]>
…leteness

fix: avoid false parser limits and reference accounting failures
Package the merged parser and reference-accounting fixes from NVIDIA#507 and the runtime executable-path coverage guard from NVIDIA#508. Update version metadata, changelog, and release notes.

Prepared by Codex for Mohit Gupta.

Signed-off-by: Mohit Gupta <[email protected]>
Prepared by Codex for Mohit Gupta.

Signed-off-by: Mohit Gupta <[email protected]>
Brings in 19 upstream commits: releases 2.11.1 and 2.11.2, including
NVIDIA#468 (configurable workflow deadline) and the 2.11.2 security fixes.

The only conflict was src/skillspector/state.py. Upstream NVIDIA#468 adds
SKILLSPECTOR_MAX_WORKFLOW_SECONDS -- the same name this fork added in
185d610 -- with different semantics: a 600 s default and only positive
finite overrides, where the fork used a 60 s default and <= 0 to lift
the ceiling. Upstream's version is taken whole, as the fork's DIVERGENCE
row for that file pre-registered ("drop this row if upstream adds a
same-named or equivalent override"). It is also more complete: it wires
the transitive budget in cli.py to the same setting.

Consequence handled downstream: a gate that sets the variable to "0"
would silently fall back to 600 s under upstream's rules. agent-skills
and book-to-skill now set 86400, which means the same under both.

tools/upstream_baseline.json moves the commit axis to 69dcdfb only; the
PR and issue axes are unchanged and not yet re-triaged.

AGENTS.md now says to verify on a venv outside OneDrive with
UV_LINK_MODE=copy: the in-repo .venv becomes a Files On-Demand
placeholder tree (os error 5 on reinstall), and hardlinked installs let
the cloud filter claim uv's cache (os error 396), leaving packages with
metadata but no module.

Verified that way, in two batches: 4009 passed, 39 skipped,
38 deselected, 4 xfailed, 0 failed. check_divergence: 12 upstream files
diverge, 12 registered.

Co-Authored-By: Claude Opus 5 <[email protected]>
Signed-off-by: SanHsien <[email protected]>
Dependency freshness went red on 75bd6f3. The only gating rows were the
two github/codeql-action pins in codeql.yml, a fork-owned workflow, still
at v4.37.9 after v4.38.0 was released. Both move to the v4.38.0 commit
b96794f015dfd88f77b49b1c93e0fa7110f94c63 (tag object dereferenced), with
the version kept in the trailing comment. The pins in upstream-owned
workflows are informational by policy and stay as upstream has them.

ruff reported UP035 in tools/check_dependency_freshness.py (Callable
belongs to collections.abc). The gate never saw it because
tools/dev_check.ps1 linted only two named scripts under tools/. It now
lints and format-checks all of tools/, which holds only fork-owned
maintenance tools.

Verified: ruff check and format --check over src/ tests/ tools/ pass,
tests/unit/test_fork_maintenance_checks.py 14 passed,
check_dependency_freshness.py --strict exits 0 with both codeql-action
rows OK, and dev_check.ps1 -Quick is green.

Co-Authored-By: Claude Opus 5 <[email protected]>
Signed-off-by: SanHsien <[email protected]>
test_rd04_large_file_pair_detects_start_boundary_and_end failed in run
34543263439 with analysis_completeness.is_complete False: under runner
load the third public surface exhausted the 30-second per-artifact
static budget. _allow_slow_static_fixture already relaxes the budgets
for the two oversized acceptance fixtures, but only when os.name is
"nt", and CI runs on ubuntu, so the relaxation never applied there.
Upstream's own Linux CI fails the same way (runs 34447095261 and
34442162097, the latter together with
test_nine_case_contract_across_public_surfaces).

Applying the relaxation on every platform removes the load dependence
from those two tests only; product defaults and all other tests are
unchanged. Dropping the platform check also removes the fork-only
"import os", which narrows the diff against upstream. The DIVERGENCE
rows now state the all-platform scope and the evidence.

Verified: tests/nodes/test_security_end_to_end.py and
tests/unit/test_fork_maintenance_checks.py 59 passed; ruff check and
format clean; check_divergence OK (12 diverging, 12 registered).

Co-Authored-By: Claude Opus 5 <[email protected]>
Signed-off-by: SanHsien <[email protected]>
…VIDIA#524

Raise reviewed_pr_through to 527 and reviewed_issue_through to 524 in
tools/upstream_baseline.json (commit axis unchanged at 69dcdfb). Every
item gets a verdict in docs/DECISIONS.md: NVIDIA#493/NVIDIA#507/NVIDIA#508/NVIDIA#511 verified
via git merge-base --is-ancestor as already included through the
2.11.1/2.11.2 sync (including NVIDIA#521, which merged only into the still-
open NVIDIA#516 stack, not main); the remaining 27 items stay "wait for
upstream merge", none adopted now.

Two items get dedicated comparison notes per docs/DIVERGENCE.md's
static_runner.py and scripts/compare_scan_accuracy.py rows: NVIDIA#522 uses a
different env var name and different default/semantics than this
fork's SKILLSPECTOR_MAX_STATIC_SECONDS, so merging it cannot simply
delete the divergence row and needs a downstream env var migration
first; NVIDIA#490 extends this fork's own upstream PR NVIDIA#486 with a Python
3.14/POSIX edge case the fork's Windows environment does not hit, so
NVIDIA#486 is left untouched pending upstream's own resolution. NVIDIA#501-NVIDIA#505 and
NVIDIA#518 are also flagged as near-verbatim matches to this fork's existing
Windows test divergence rows, worth revisiting for row deletion once
merged.

Co-Authored-By: Claude Opus 5 <[email protected]>
Signed-off-by: SanHsien <[email protected]>
Bumps [cryptography](https://github.com/pyca/cryptography) from 49.0.0 to 50.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@49.0.0...50.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 50.0.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Sep 11, 2026
SanHsien and others added 2 commits September 12, 2026 00:21
Dependabot opened #1 (cryptography 49.0.0 -> 50.0.0) and #2 (setuptools
82.0.1 -> 83.0.0) against uv.lock. uv.lock is upstream-owned and is
byte-identical to upstream 69dcdfb; applying #1's lock makes
tools/check_divergence.py report "Changed but not registered: uv.lock"
(exit 1), which fails tools/dev_check.ps1 and would conflict on every
upstream sync.

Neither fixes a reachable defect. cryptography 50.0.0's CVE-2026-69247
is in pkcs7_decrypt_der and its variants; the packages that depend on
cryptography here are langgraph-api, pyjwt and secretstorage, and src/
makes no PKCS#7 decryption call. setuptools is build-only.

Recorded the rule in docs/DECISIONS.md: adopt a uv Dependabot PR only
for a security fix the scanner's code path can reach, and then register
uv.lock in docs/DIVERGENCE.md. The uv ecosystem stays in dependabot.yml
as the signal that upstream's lock is behind. The PRs stay open.

Co-Authored-By: Claude Opus 5 <[email protected]>
Signed-off-by: SanHsien <[email protected]>
@dependabot @github

dependabot Bot commented on behalf of github Sep 13, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/uv/cryptography-50.0.0 branch September 13, 2026 15:16
SanHsien added a commit that referenced this pull request Sep 17, 2026
…\n\n- Bump cryptography (49.0.0 -> 50.0.1) and setuptools (82.0.1 -> 84.0.0)\n to remediate Dependabot alerts #1 (CVE-2026-59890) and #2 (CVE-2026-69247)\n- Fix CodeQL py/incomplete-url-substring-sanitization alerts #1-#4 in\n  tests/unit/test_input_handler_ssrf.py by using set issubset assertions\n- Fix CodeQL py/overly-permissive-file alerts #5-#6 in\n  tests/unit/test_input_handler.py by restricting permissions to owner\n- Register divergences for uv.lock and tests in docs/DIVERGENCE.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.