Alternative: Free Code, Expensive Problems
Alternative2: Zero Days, Zero Sleep
Picking up where last year’s FOSDEM presentation left off, Daniel Stenberg dives into the shifting front lines of the open source security vulnerability
| #!/bin/sh | |
| # | |
| # converts "icing:tool-synthetic-error-handling" | |
| # to | |
| # "git pull git@github.com:icing/curl.git tool-synthetic-error-handling" | |
| # | |
| # or | |
| # "https://github.com/mvanslobbe/curl-fork/tree/perf/ws-mask-chunks" | |
| # to | |
| # "git pull git@github.com:mvanslobbe/curl-fork.git perf/ws-mask-chunks" |
Minimum: 19084984 milliseconds
P25: 19408571 milliseconds
Median: 19510998 milliseconds
P75: 19738877 milliseconds
Maximum: 19889887 milliseconds
Average: 19524052 milliseconds
Span: +-402451 milliseconds, 2.061% of average
Minimum: 105 allocations
| diff --git a/src/tool_operate.c b/src/tool_operate.c | |
| index f402c3f055..3e6038d9a6 100644 | |
| --- a/src/tool_operate.c | |
| +++ b/src/tool_operate.c | |
| @@ -854,10 +854,11 @@ static CURLcode post_close_output(struct per_transfer *per, | |
| int rc; | |
| /* Close the outs file */ | |
| if(outs->fopened && outs->stream) { | |
| rc = curlx_fclose(outs->stream); |
Started: 2026-05-06
Commit: 455bebc2c7 (master)
Scope: 178k LoC C, lib/ + src/
Code links: https://github.com/curl/curl/tree/455bebc2c76223a1be26042f6d2393715c0df0cd (all line refs below pin to this commit)
curl is one of the most fuzzed and audited C codebases in existence (OSS-Fuzz, Coverity, CodeQL, multiple paid audits). Finding anything in the hot paths (HTTP/1, TLS, URL parsing core) is unlikely. Focus instead on:
| <?xml version="1.0" encoding="US-ASCII"?> | |
| <testcase> | |
| <info> | |
| <keywords> | |
| HTTP | |
| HTTP GET | |
| </keywords> | |
| </info> | |
| # Server-side | |
| <reply> |
GitHub sends the whole report over email/notification with no way to disable this. SMTP and email is known for being insecure and cannot assure end to end protection. This risks leaking secrets early to the entire email chain.
can't properly disclose invalid ones (and make them clearly marked as such)
Per-repo default collaborators on GitHub Security Advisories is annoying as we now have to manually add the security team for each advisory or have a rather quirky workflow scripting it.
This collection is limited to only include the reports that were submitted as security vulnerabilities to the curl bug-bounty program on Hackerone.
Several other issues not included here are highly suspcious as well.
| ==450632== | |
| ==450632== HEAP SUMMARY: | |
| ==450632== in use at exit: 13,496 bytes in 331 blocks | |
| ==450632== total heap usage: 5,306 allocs, 4,975 frees, 581,992 bytes allocated | |
| ==450632== | |
| ==450632== 24 bytes in 1 blocks are definitely lost in loss record 12 of 81 | |
| ==450632== at 0x4844818: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) | |
| ==450632== by 0x153E93: curl_dbg_malloc (memdebug.c:145) | |
| ==450632== by 0x174753: Curl_memdup (strdup.c:93) | |
| ==450632== by 0x1E7CD9: Curl_httpsrr_set (httpsrr.c:103) |