SEC2-063: The dev lock pins a core commit 210 behind and carries pyjwt 2.13.0 and urllib3 2.7.0 with published advisories #17
Labels
No labels
bug
documentation
enhancement
performance
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo-paperless#17
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found on 2026-10-16 in a read-only security review of
postulo-paperlessat37a044b, checked by a second, independent pass.Severity: Low · Category: Dependencies · Reference: CWE-1395 (Dependency on Vulnerable Third-Party Component); OWASP A06:2021 (Vulnerable and Outdated Components)
Location:
pyproject.toml:55(postulo @ git+...@925e3e9cd, dev group)pyproject.toml:51-53(the comment still says the pin is to become@v0.3.0)uv.lock:834-836, and the lock'spyjwt2.13.0,urllib32.7.0,oauthlib3.3.1Issue
pip-audit 2.10.1, run on 2026-10-16 against
uv exportof the lock, finds 19 knownvulnerabilities in 3 packages: pyjwt 2.13.0 (fourteen advisories, PYSEC-2026-4140 to -4152 and
-4183, fixed in 2.14.0 / 2.15.0), urllib3 2.7.0 (PYSEC-2026-4175, -4176, -4177, fixed in 2.8.0)
and oauthlib 3.3.1 (PYSEC-2026-4114, fixed in 4.0.0). All three arrive through the pinned core,
which at
56fc9d531holds pyjwt 2.15.1 and urllib3 2.8.0.httpx, the plugin's own dependency,is clean. The pin is 210 commits behind the core, and the comment promising
@v0.3.0no longermatches a lock that resolves postulo 0.4.0.
Impact
CI and developer environments only: an instance installs the plugin as a wheel under the core's
lock as a constraint and receives the core's versions.
Fix
Repin the dev group to the current core and run
uv lock --upgrade-package pyjwt --upgrade-package urllib3; drop or honour the@v0.3.0comment. Add the audit jobpostulo/postulo-apprise#13 asks for, so the next drift is reported.
Done when:
pip-audit --strictoveruv export --no-emit-projectof this lock finds nothing thecore's own lock does not carry.
Related
postulo/postulo-apprise#13 (open) names this repository for the missing uv pin and audit job but
records no advisory. #2 (closed) set the pin once; it has slipped since.