OCPBUGS-90514: Fix CVE-2026-12143 form-data CRLF injection - #16865
OCPBUGS-90514: Fix CVE-2026-12143 form-data CRLF injection#16865sg00dwin wants to merge 1 commit into
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@sg00dwin: This pull request references Jira Issue OCPBUGS-90514, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
WalkthroughThe frontend Yarn resolutions retain the existing ChangesFrontend dependency resolutions
Estimated code review effort: 1 (Trivial) | ~3 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 11❌ Failed checks (1 warning, 10 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@sg00dwin: This pull request references Jira Issue OCPBUGS-90514, which is valid. 3 validation(s) were run on this bug
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/assign @rhamilto |
| "form-data@npm:^2.3.3": "2.5.6", | ||
| "form-data@npm:^4.0.0": "4.0.6", | ||
| "form-data@npm:^4.0.4": "4.0.6", | ||
| "form-data@npm:~4.0.4": "4.0.6" |
There was a problem hiding this comment.
exact version resolutions should be the responsibility of the lockfile unless otherwise necessary
these are all within the semver range, can we use yarn set resolution? https://yarnpkg.com/cli/set/resolution, to avoid bloating the resolutions block?
There was a problem hiding this comment.
removed the resolutions, lockfile-only now.
Bump form-data to patched versions (4.0.6, 2.5.6) via lockfile update. Both versions are within the existing semver ranges of all consumers. Assisted by: Claude Code
023f7c3 to
51a83ce
Compare
|
Scheduling tests matching the |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: logonoff, sg00dwin The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/test backend |
|
/test all |
|
@logonoff: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@sg00dwin: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Pin form-data to patched versions (2.5.6, 4.0.6) via Yarn resolutions to fix Content-Disposition header injection.
Analysis / Root cause:
The form-data npm package (transitive dependency) versions 4.0.5 and 2.5.1 are vulnerable to CRLF injection (CVE-2026-12143). Field names and filenames are concatenated into Content-Disposition headers without escaping CR, LF, or " characters, allowing header injection or multipart part smuggling. Two vulnerable versions are resolved in the lockfile:
form-data@4.0.5 via @cypress/request, @kubernetes/client-node, @types/node-fetch
form-data@2.5.1 via gitlab@10.0.1 (through @console/git-service)
Solution description:
Updates yarn.lock to resolve form-data to patched versions (4.0.6 and 2.5.6). Both patched versions are within the existing semver ranges of all consumers, so no resolutions override is needed — this is a lockfile-only update. The fix escapes CR/LF/" as %0D/%0A/%22 per the WHATWG spec, matching browser behavior. No API changes.
Test cases:
yarn install succeeds
yarn why form-data confirms all 4 consumers resolve to patched versions
yarn test packages/git-service — 9 suites, 123 tests pass
yarn test packages/dev-console — 99 suites, 679 tests pass
yarn build — production build succeeds
yarn test-playwright --project=smoke — 5 tests pass against live OCP cluster
CI passes
Additional info:
CVE: https://nvd.nist.gov/vuln/detail/CVE-2026-12143
Jira: OCPBUGS-90514
Assisted by: Claude Code (Opus 4.6)
Summary by CodeRabbit