Skip to content

chore(deps): bump axios to address high-severity advisories blocking security CI #173

@pchuri

Description

@pchuri

Summary

npm audit --audit-level moderate --omit=dev (run by the security job in .github/workflows/ci.yml) currently fails on every push because the pinned axios range ^1.15.0 resolves to 1.15.0/1.15.1, both of which carry recently disclosed high-severity advisories.

This is unrelated to any specific PR — the security check fails on main at the latest commit as well, and was the only blocker on #171 (now merged).

Reproduction

npm ci
npm audit --audit-level moderate --omit=dev
# exits 1 — 1 high severity vulnerability (axios 1.0.0 - 1.15.1)

Also visible in any recent CI run, e.g. https://github.com/pchuri/confluence-cli/actions/runs/25364389501 (main) and https://github.com/pchuri/confluence-cli/actions/runs/25389335951 (PR #171).

Affected advisories (axios 1.0.0 – 1.15.1)

Most are exploitable only when an attacker controls request configuration or response payloads, but several apply to any consumer (CRLF injection, no_proxy bypass, header injection).

Proposed fix

Bump axios to a fixed release and refresh the lockfile:

npm install axios@^1.15.2   # or whichever release contains the cluster of fixes
npm audit --audit-level moderate --omit=dev   # should be clean

Update package.json from "axios": "^1.15.0" to a range that excludes the affected versions. A quick smoke test of the auth/redirect paths (especially extractPageId tiny-link redirect handling and attachment uploads) is worth doing because some of these advisories patched HTTP-adapter behavior that the client relies on.

Tradeoffs / alternatives

  • Pin to latest major: simplest, but axios occasionally lands subtle behavior changes — worth a CHANGELOG note.
  • Suppress via --audit-level high or an .audit-ci allowlist: not recommended; these are real high-severity advisories.
  • Wait for upstream: not applicable, fixes are already published.

Acceptance criteria

  • npm audit --audit-level moderate --omit=dev exits 0 locally and in CI.
  • All existing tests pass on Node 18.x / 20.x / 22.x.
  • Manual smoke test of authenticated GET and a tiny-link redirect resolution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingreleased

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions