robobun
e8a5f23385
fix(s3): reject CRLF characters in header values to prevent header injection ( #26942 )
...
## Summary
- Fixes HTTP header injection vulnerability in S3 client where
user-controlled options (`contentDisposition`, `contentEncoding`,
`type`) were passed to HTTP headers without CRLF validation
- Adds input validation at the JS-to-Zig boundary in
`src/s3/credentials.zig` that throws a `TypeError` if `\r` or `\n`
characters are detected
- An attacker could previously inject arbitrary headers (e.g.
`X-Amz-Security-Token`) by embedding `\r\n` in these string fields
## Test plan
- [x] Added `test/regression/issue/s3-header-injection.test.ts` with 6
tests:
- CRLF in `contentDisposition` throws
- CRLF in `contentEncoding` throws
- CRLF in `type` (content-type) throws
- Lone CR in `contentDisposition` throws
- Lone LF in `contentDisposition` throws
- Valid `contentDisposition` without CRLF still works correctly
- [x] Tests fail with `USE_SYSTEM_BUN=1` (confirming vulnerability
exists in current release)
- [x] Tests pass with `bun bd test` (confirming fix works)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-authored-by: Claude Bot <claude-bot@bun.sh >
Co-authored-by: Claude <noreply@anthropic.com >
2026-02-11 23:02:39 -08:00
..
2026-02-06 18:05:17 -08:00
2026-01-28 20:24:02 -08:00
2026-02-09 22:03:54 -08:00
2025-12-15 12:51:13 -08:00
2026-02-10 01:53:07 -08:00
2026-02-10 22:32:08 -08:00
2026-02-09 22:03:54 -08:00
2026-02-11 17:41:45 -08:00
2026-02-04 19:38:12 -08:00
2026-01-19 22:45:56 -08:00
2025-11-10 14:38:26 -08:00
2026-01-14 13:34:31 -08:00
2026-02-09 04:47:52 -08:00
2025-11-10 14:38:26 -08:00
2026-01-22 13:44:49 -08:00
2026-01-19 17:04:44 -08:00
2026-01-19 17:12:42 -08:00
2026-01-21 18:41:15 -08:00
2026-01-26 10:52:35 -08:00
2026-02-09 00:36:30 -08:00
2026-02-10 23:06:22 -08:00
2026-02-11 22:47:41 -08:00
2026-02-03 22:18:40 -08:00
2026-01-27 13:35:15 -08:00
2025-11-24 20:16:03 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2026-02-09 22:03:54 -08:00
2026-02-11 23:02:39 -08:00
2025-11-10 14:38:26 -08:00
2025-11-20 20:56:02 -08:00
2026-02-11 17:51:10 -08:00
2025-11-10 14:38:26 -08:00
2026-02-11 22:45:47 -08:00
2026-02-05 17:31:15 -08:00
2026-01-21 13:01:25 -08:00
2025-11-10 14:38:26 -08:00
2025-12-22 12:07:24 -08:00
2026-01-23 00:07:06 -08:00
2026-01-21 13:01:25 -08:00
2025-12-25 14:00:58 -08:00
2026-01-14 16:46:20 -08:00
2025-11-10 14:38:26 -08:00
2026-01-22 14:35:18 -08:00
2025-11-26 00:02:43 -08:00
2026-01-30 01:38:45 -08:00
2025-11-05 15:28:28 -08:00
2025-11-10 14:38:26 -08:00
2025-10-23 23:08:08 -07:00
2026-01-05 10:21:49 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2026-01-31 16:59:03 -08:00
2026-01-28 20:24:02 -08:00
2026-02-10 10:58:21 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 19:58:02 -08:00
2026-01-07 12:33:21 -08:00
2026-02-10 10:58:21 -08:00
2026-01-22 04:22:45 -08:00
2025-10-29 19:29:04 -07:00
2025-11-03 22:20:07 -08:00
2025-11-10 14:38:26 -08:00
2026-02-02 23:12:21 -08:00
2025-11-20 20:56:02 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2026-01-30 16:20:45 -08:00
2026-01-23 00:24:18 -08:00
2026-01-22 04:22:45 -08:00
2025-11-10 14:38:26 -08:00
2026-01-21 13:01:25 -08:00
2025-10-23 23:08:08 -07:00
2025-11-10 14:38:26 -08:00
2026-02-08 19:49:26 -08:00
2026-01-26 10:52:35 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2026-01-18 13:19:30 -08:00
2026-01-07 22:46:51 -08:00
2025-12-17 19:56:25 -08:00
2026-01-26 10:52:35 -08:00
2026-02-09 22:03:54 -08:00
2025-11-10 14:38:26 -08:00
2025-11-10 14:38:26 -08:00
2026-02-09 22:03:54 -08:00
2025-11-10 14:38:26 -08:00
2025-12-21 17:12:42 -08:00
2025-10-23 23:08:08 -07:00
2025-12-21 17:12:42 -08:00
2026-01-16 14:18:48 -08:00
2026-01-23 00:24:18 -08:00
2025-11-10 14:38:26 -08:00
2026-01-23 00:24:18 -08:00
2025-10-18 18:14:01 -07:00
2025-11-10 14:38:26 -08:00
2026-02-09 22:03:54 -08:00
2025-11-30 23:11:33 -08:00
2026-01-30 01:38:45 -08:00
2026-01-21 13:01:25 -08:00
2025-12-06 16:37:09 -08:00
2025-12-01 21:59:11 -08:00
2025-11-10 14:38:26 -08:00
2025-11-13 19:29:16 -08:00
2026-01-14 12:52:41 -08:00
2025-11-15 16:36:15 -08:00
2026-02-09 22:03:54 -08:00
2026-02-09 22:03:54 -08:00
2025-11-10 14:38:26 -08:00
2026-02-10 23:04:46 -08:00
2025-11-10 14:38:26 -08:00
2026-01-21 13:01:25 -08:00
2025-12-15 19:50:11 -08:00
2025-12-15 19:50:11 -08:00
2026-01-20 12:47:07 -08:00
2026-02-10 22:32:31 -08:00
2025-11-10 14:38:26 -08:00
2026-02-09 22:03:54 -08:00
2025-12-15 13:21:41 -08:00
2025-11-10 14:38:26 -08:00
2026-01-14 16:46:20 -08:00
2026-01-22 04:22:45 -08:00
2025-11-30 23:11:33 -08:00
2025-11-10 14:38:26 -08:00
2025-12-18 21:42:14 -08:00