Skip to content

fix: update vulnerable dependencies to resolve security advisories#830

Merged
marcusburghardt merged 9 commits intocomplytime:mainfrom
marcusburghardt:fix/security-dependency-updates
Apr 22, 2026
Merged

fix: update vulnerable dependencies to resolve security advisories#830
marcusburghardt merged 9 commits intocomplytime:mainfrom
marcusburghardt:fix/security-dependency-updates

Conversation

@marcusburghardt
Copy link
Copy Markdown
Contributor

@marcusburghardt marcusburghardt commented Apr 21, 2026

Summary

Updates 8 vulnerable dependencies to resolve 14 open Dependabot security advisories across critical, high, medium, and low severity levels.

Each dependency is updated in a separate commit for traceability. The black major version bump (25 → 26) required reformatting the codebase and adjusting the Makefile lint/format targets to resolve a conflict between black 26 and the previous isort --lines-after-imports=2 setting.

Several updated packages now require Python >= 3.10. Poetry resolves this by maintaining dual entries in the lock file: Python >= 3.10 gets the patched versions, while Python < 3.10 retains the previous versions due to upstream constraints.

Dependency Updates

Package From To Severity Alerts
nltk 3.9.2 3.9.4 critical/high/medium #52, #71, #63, #62, #61, #60
orjson 3.11.5 3.11.8 high #55
PyJWT 2.10.1 2.12.1 high #56
black 25.11.0 26.3.1 high #54
filelock 3.19.1 3.29.0 medium #43, #49
PyNaCl 1.5.0 1.6.2 medium #45
pytest 8.4.2 9.0.3 medium #69
Pygments 2.19.2 2.20.0 low #67

Remaining Unresolved

Package Alerts Reason
cryptography (46.0.3) #51, #66, #68 Pinned by compliance-trestle 3.11.0 to exact version 46.0.3. Requires upstream release.
marshmallow (4.0.0) #44 Latest Python 3.9-compatible version (4.0.1) remains in the vulnerable range. Deferred to avoid triggering the OSV-Scanner PR diff check with a still-vulnerable intermediate version.
requests (2.32.4) #65 Latest Python 3.9-compatible version (2.32.5) remains in the vulnerable range. Deferred for the same reason.

Related Issues

Review Hints

@marcusburghardt
Copy link
Copy Markdown
Contributor Author

e2e failure should be fixed by #822

@sonupreetam
Copy link
Copy Markdown
Contributor

@marcusburghardt This has some merge conflicts, I can review it after its fixed :).

@marcusburghardt
Copy link
Copy Markdown
Contributor Author

@marcusburghardt This has some merge conflicts, I can review it after its fixed :).

Working on it. : )

Updates nltk to 3.9.4 for Python >= 3.10 environments. This resolves
multiple security advisories affecting nltk <= 3.9.2/3.9.3.

Note: nltk 3.9.4 requires Python >= 3.10. For Python 3.9 environments,
nltk remains at 3.9.2 due to upstream compatibility constraints.

Resolves Dependabot alerts: complytime#52, complytime#71, complytime#63, complytime#62, complytime#61, complytime#60
See: GHSA-7p94-766c-hgjp
See: GHSA-h8wq-7xc4-p3qx
See: GHSA-469j-vmhf-r6v7
See: GHSA-jm6w-m3j8-898g
See: GHSA-p423-j2cm-9vmq
See: GHSA-gfwx-w7gr-fvh7
See: GHSA-rf74-v2fm-23pw

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Updates orjson to 3.11.8 for Python >= 3.10 environments to resolve
a deep recursion vulnerability in JSON document parsing.

Note: orjson 3.11.8 requires Python >= 3.10. For Python 3.9 environments,
orjson remains at 3.11.5 due to upstream compatibility constraints.

Resolves Dependabot alert: complytime#55
See: GHSA-hx9q-6w63-j58v

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Updates PyJWT from 2.10.1 to 2.12.1 to address an issue where
unknown critical header extensions were incorrectly accepted.

Resolves Dependabot alert: complytime#56
See: GHSA-752w-5fwx-jx9f

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Updates filelock to 3.29.0 for Python >= 3.10 environments to address
TOCTOU race condition and symlink attack vulnerabilities during lock
file creation.

Note: filelock 3.29.0 requires Python >= 3.10. For Python 3.9
environments, filelock remains at 3.19.1 due to upstream constraints.

Resolves Dependabot alerts: complytime#43, complytime#49
See: GHSA-w853-jp5j-5j7f
See: GHSA-qmgc-5h2g-mvrw

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
@marcusburghardt marcusburghardt force-pushed the fix/security-dependency-updates branch from 0ef7351 to b2a722a Compare April 22, 2026 14:38
@marcusburghardt
Copy link
Copy Markdown
Contributor Author

@marcusburghardt This has some merge conflicts, I can review it after its fixed :).

Working on it. : )

Done @sonupreetam . Thanks for reviewing.

Updates PyNaCl from 1.5.0 to 1.6.2 to address an incomplete list
of disallowed inputs in the underlying libsodium library.

Resolves Dependabot alert: complytime#45
See: GHSA-mrfv-m5wm-5w6w

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Updates Pygments from 2.19.2 to 2.20.0 to address a Regular
Expression Denial of Service (ReDoS) vulnerability due to
inefficient regex for GUID matching.

Resolves Dependabot alert: complytime#67
See: GHSA-5239-wwwm-4pmq

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Updates black from 25.11.0 to 26.3.1 to address an arbitrary file
write vulnerability from unsanitized user input in cache file names.

Note: black 26.3.1 requires Python >= 3.10. The dependency constraint
is now restricted to Python >= 3.10 environments accordingly.

Resolves Dependabot alert: complytime#54
See: GHSA-3936-cmfr-pm3m

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Updates pytest from 8.4.2 to 9.0.3 to address a vulnerable tmpdir
handling issue.

Note: pytest 9.0.3 requires Python >= 3.10. The dependency constraint
is now restricted to Python >= 3.10 environments accordingly. For
Python 3.9, pytest remains at 8.4.2.

Resolves Dependabot alert: complytime#69
See: GHSA-6w46-j5rx-g56g

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
Apply formatting changes required by the black 25.x to 26.x upgrade.
Update Makefile to run black before isort and remove the explicit
--lines-after-imports=2 option that conflicts with black 26's
stricter blank line handling.

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
@marcusburghardt marcusburghardt force-pushed the fix/security-dependency-updates branch from b2a722a to f3eb17d Compare April 22, 2026 14:48
Copy link
Copy Markdown
Contributor

@sonupreetam sonupreetam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@marcusburghardt marcusburghardt merged commit d271f20 into complytime:main Apr 22, 2026
16 of 17 checks passed
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.

2 participants