Skip to content

chore: release 0.20.0 - #198

Merged
SizzleUnrlsd merged 1 commit into
mainfrom
release/0.20.0
Sep 30, 2026
Merged

SizzleUnrlsd merged 1 commit into
mainfrom
release/0.20.0

Conversation

@SizzleUnrlsd

Copy link
Copy Markdown
Contributor

Release 0.20.0: the keyword_name advisory condition and the key taint behind it (#193, #196), so a curated entry point can say the attacker must choose a keyword name of the call, as Django's ORM takes column aliases and lookups; Arguments.keyword_unpacked and the folding of a ** literal with constant keys into the keywords, which changes the cache format.

Advisories

  • An advisory condition of kind keyword_name: met when the attacker's input is passed as the keys of a ** mapping, pending when the mapping's keys are not established, contradicted by a call writing every keyword name (ruled_out names them).

Analysis

  • The keys of a mapping carry taint of their own, apart from its values, for a dict literal, dict(...), a comprehension and a subscript assignment; {**d} copies it.

Plugins

  • Arguments.keyword_unpacked; a ** literal with constant keys that nothing else uses is recorded as its keywords. The cache format becomes 12.

Changes

Verification

tests/test_release.py, tests/test_docs.py and tests/test_packaging.py: 11 passed, 2 skipped in 0.97s. Full suite under Python 3.12, regression corpus excluded: 1581 passed, 2 skipped, 19 deselected in 143.48s (0:02:23). ruff check passes. The regression corpus ran green on main at d3d5f7e, the code this release ships.

@SizzleUnrlsd SizzleUnrlsd added the chore Maintenance: releases, build, CI and refactoring label Sep 30, 2026
@SizzleUnrlsd SizzleUnrlsd self-assigned this Sep 30, 2026
@SizzleUnrlsd
SizzleUnrlsd merged commit 9ef496a into main Sep 30, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance: releases, build, CI and refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant