Skip to content

security: resolve Aikido findings (cryptography, aiohttp, Actions pinning, checkout creds) - #28

Merged
SahilShetLYZR merged 2 commits into
LYZR-OSS:mainfrom
parshva-lyzr:security/aikido-fixes
Aug 30, 2026
Merged

security: resolve Aikido findings (cryptography, aiohttp, Actions pinning, checkout creds)#28
SahilShetLYZR merged 2 commits into
LYZR-OSS:mainfrom
parshva-lyzr:security/aikido-fixes

Conversation

@parshva-lyzr

@parshva-lyzr parshva-lyzr commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Resolves the four open Aikido findings on cloudrift.

Aikido finding Severity Fix
cryptography — out-of-bounds read can expose sensitive info High Floor >=42.0>=50.0.1 in sql-mssql / sql / all extras. Clears GHSA-537c-gmf6-5ccf (vulnerable OpenSSL in wheels), GHSA-g6cj-pr64-35w5, GHSA-jwv3-5hgf-82ww, GHSA-m2h6-j472-rp4c.
3rd-party GitHub Actions should be pinned (ci.yml, develop.yml, release.yml) High Every action pinned to a full commit SHA with the version in a trailing comment: actions/checkout v4.4.0, astral-sh/setup-uv v10.0.1, pypa/gh-action-pypi-publish v1.14.2, softprops/action-gh-release v3.0.3.
aiohttp — HTTP request smuggling attack possible Medium Explicit floor aiohttp>=3.14.3 added to aws / all extras (it's transitive via aiobotocore, which only requires <4). Clears GHSA-mfx4-hv73-q22v (smuggling via WebSocket upgrade), GHSA-cq5v-8q36-5273 and 12 further advisories.
actions/checkout may expose GITHUB_TOKEN via git config Low persist-credentials: false on all 5 checkout steps. Nothing in these workflows pushes via git — PyPI publishing is OIDC, gh-release uses its own token input — so no behaviour change.

uv.lock regenerated: aiohttp 3.13.5 → 3.14.3, cryptography 46.0.7 → 50.0.1, msal 1.36.0 → 1.38.0 (pulled by the cryptography bump). No other packages changed.

Verification

uv sync --extra dev
uv run pytest tests/ -v --ignore=tests/integration   # 275 passed, 3 skipped

Workflow YAML validated; cloudrift, cryptography, aiohttp import cleanly under Python 3.11.

Note on astral-sh/setup-uv v5 → v10.0.1: several majors, but the only input used (python-version) is unchanged. Pinning to the current release rather than an old v5 SHA means the SHA won't itself become an Aikido "outdated action" finding next scan.

Release: bumps version to 0.2.12 so the fixed floors ship to PyPI. Tag v0.2.12 after merge to trigger release.yml.

…ning, checkout creds)

Dependencies
- cryptography: floor 42.0 -> 50.0.1 in sql-mssql / sql / all extras.
  Clears GHSA-537c-gmf6-5ccf (vulnerable OpenSSL in wheels, OOB read),
  GHSA-g6cj-pr64-35w5, GHSA-jwv3-5hgf-82ww, GHSA-m2h6-j472-rp4c.
- aiohttp: add explicit floor >=3.14.3 to aws / all extras (transitive via
  aiobotocore, which allows <4). Clears GHSA-mfx4-hv73-q22v (request
  smuggling via WebSocket upgrade), GHSA-cq5v-8q36-5273 and 12 others.
- uv.lock regenerated: aiohttp 3.13.5 -> 3.14.3, cryptography 46.0.7 ->
  50.0.1, msal 1.36.0 -> 1.38.0 (pulled by the cryptography bump).

GitHub Actions
- Pin every third-party action to a full commit SHA (version in trailing
  comment): actions/checkout v4.4.0, astral-sh/setup-uv v10.0.1,
  pypa/gh-action-pypi-publish v1.14.2, softprops/action-gh-release v3.0.3.
- actions/checkout: persist-credentials: false on all 5 uses so
  GITHUB_TOKEN is not written into .git/config. No step in these
  workflows pushes via git; PyPI uses OIDC, gh-release uses the
  action's own token input.

Verified: uv sync --extra dev && pytest tests/ --ignore=tests/integration
-> 275 passed, 3 skipped.
@sonarqubecloud

Copy link
Copy Markdown

@shreyas-lyzr shreyas-lyzr left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Clean security patch — nothing blocking found after a full review.

Dependency bumps are correct: cryptography 50.0.1 and aiohttp 3.14.3 carry no known CVEs (OSV confirmed), and the floors are set in all relevant extras (sql-mssql, sql, all for cryptography; aws, all for aiohttp). The uv.lock hashes match PyPI. The msal bump to 1.38.0 is a natural pull from the cryptography version change and is also clean.

All five GitHub Actions are pinned to commit SHAs, and I verified each one against the upstream tags:

All five checkout steps have persist-credentials: false applied. The workflows use OIDC for PyPI publish and an explicit token for the release action, so no git-based push path is affected.

Version bump to 0.2.12 is appropriate to ship these floors to PyPI consumers.

Security pass: no new CVEs in bumped packages, no hard-coded secrets, no injection or authz changes — this is purely a supply-chain hygiene PR.

@SahilShetLYZR
SahilShetLYZR merged commit 52e86c5 into LYZR-OSS:main Aug 30, 2026
2 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.

4 participants