Skip to content

fix: remediate starlette, lxml, and python-multipart CVEs for unstructured-api#573

Merged
lawrence-u10d merged 2 commits into
mainfrom
fix/cves-2026-05-26
May 27, 2026
Merged

fix: remediate starlette, lxml, and python-multipart CVEs for unstructured-api#573
lawrence-u10d merged 2 commits into
mainfrom
fix/cves-2026-05-26

Conversation

@lawrence-u10d
Copy link
Copy Markdown
Contributor

@lawrence-u10d lawrence-u10d commented May 27, 2026

Summary

  • Bump starlette 1.0.0 → 1.1.0 (transitive via fastapi) — fixes CVE-2025-62727 (HIGH, SLA breach +36d) and CVE-2025-54121 (MEDIUM, SLA breach +20d)
  • Bump lxml 6.1.0 → 6.1.1 (transitive via unstructured) — fixes CVE-2026-41066 (HIGH, SLA breach +20d)
  • Bump python-multipart 0.0.27 → 0.0.29 (direct dep) — fixes CVE-2026-40347 (MEDIUM, SLA breach +4d)
  • Rebuild picks up latest python-3.12 apk — resolves CVE-2025-12781 (MEDIUM)

All 5 CVEs are in SLA breach.

Changes

  • pyproject.toml: bumped python-multipart minimum from >=0.0.18 to >=0.0.29; added starlette>=1.1.0 and lxml>=6.1.1 to [tool.uv] constraint-dependencies to pin transitive dep floors
  • uv.lock: regenerated with upgraded packages
  • prepline_general/api/__version__.py: patch bump 0.1.6 → 0.1.7
  • CHANGELOG.md: added 0.1.7 security entry

Test plan

  • make install-test succeeds with --locked
  • make test — 133 passed, 0 failures
  • CI passes on this PR
  • Image build + scan confirms CVEs resolved

🤖 Generated with Claude Code


Summary by cubic

Remediates five SLA-breached CVEs by updating starlette, lxml, and python-multipart, rebuilding for the latest Python 3.12 APK, and tightening transitive floors. Also fixes CI by regenerating uv.lock with the real uv binary.

  • Dependencies
    • starlette 1.0.0 → 1.1.0 — fixes CVE-2025-62727, CVE-2025-54121.
    • lxml 6.1.0 → 6.1.1 — fixes CVE-2026-41066.
    • python-multipart 0.0.27 → 0.0.29 — fixes CVE-2026-40347.
    • Rebuild image to include latest Python 3.12 APK — fixes CVE-2025-12781.
    • Add [tool.uv] constraints (starlette>=1.1.0, lxml>=6.1.1); regenerate uv.lock with real uv to fix uv sync --locked in CI.
    • Bump version to 0.1.7 and update CHANGELOG.md.

Written for commit 73f74ba. Summary will update on new commits. Review in cubic

Bump starlette (1.0.0 -> 1.1.0), lxml (6.1.0 -> 6.1.1), and
python-multipart (0.0.27 -> 0.0.29) to resolve 5 SLA-breached CVEs:

- CVE-2025-62727 (starlette, HIGH)
- CVE-2025-54121 (starlette, MEDIUM)
- CVE-2026-41066 (lxml, HIGH)
- CVE-2026-40347 (python-multipart, MEDIUM)
- CVE-2025-12781 (python-3.12 apk, MEDIUM — resolved by rebuild)

Adds constraint-dependencies for starlette and lxml (transitive deps)
to prevent version regression. Bumps python-multipart minimum in
direct dependencies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 27, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​lxml@​6.1.0 ⏵ 6.1.198 +1100100100100
Updatedpypi/​starlette@​1.0.0 ⏵ 1.1.0100 +1100100100100
Updatedpypi/​python-multipart@​0.0.27 ⏵ 0.0.29100100100100100

View full report

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

No issues found across 4 files

Shadow auto-approve: would auto-approve. This PR addresses critical CVEs by bumping three dependencies to patched versions with no breaking changes, and all tests pass successfully.

Re-trigger cubic

The previous lockfile was generated through the uv-wrapper which
injected Azure DevOps registry URLs, causing `uv sync --locked` to
fail in CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lawrence-u10d lawrence-u10d merged commit e98b17a into main May 27, 2026
12 checks passed
@lawrence-u10d lawrence-u10d deleted the fix/cves-2026-05-26 branch May 27, 2026 16:38
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