Duncan Brown
duncanjbrown.com
Duncan Brown
@duncanjbrown.com
CTO for Digital Prevention Services, NHS England
https://mechanicalsurvival.com
“We continue to immediately ban and publicly ridicule everyone who submits AI slop to the project.”
The end of the curl bug-bounty
tldr: an attempt to reduce the _terror reporting_. **There is no longer a curl bug-bounty program.** It officially stops on January 31, 2026. After having had a few half-baked previous takes, in April 2019 we kicked off the first real curl bug-bounty with the help of Hackerone, and while it stumbled a bit at first it has been quite successful I think. We attracted skilled researchers who reported plenty of actual vulnerabilities for which we paid fine monetary rewards. We have certainly made curl better as a direct result of this: **87 confirmed vulnerabilities and over 100,000 USD** paid as rewards to researchers. I’m quite happy and proud of this accomplishment. I would like to especially highlight the awesome Internet Bug Bounty project, which has paid the bounties for us for many years. We could not have done this without them. Also of course Hackerone, who has graciously hosted us and been our partner through these years. Thanks! ## How we got here Looking back, I think we can say that the downfall of the bug-bounty program started slowly in the second half of 2024 but accelerated badly in 2025. We saw an explosion in AI slop reports combined with a lower quality even in the reports that were not obvious slop – presumably because they too were actually misled by AI but with that fact just hidden better. Maybe the first five years made it possible for researchers to find and report the low hanging fruit. Previous years we have had a rate of somewhere north of 15% of the submissions ending up confirmed vulnerabilities. Starting 2025, the confirmed-rate plummeted to below 5%. Not even one in twenty was _real_. The never-ending slop submissions take a serious mental toll to manage and sometimes also a long time to debunk. Time and energy that is completely wasted while also hampering our will to live. I have also started to get the feeling that a lot of the security reporters submit reports with a _bad faith attitude._ These “helpers” try too hard to twist whatever they find into something horribly bad and a critical vulnerability, but they rarely actively contribute to actually _improve_ curl. They can go to extreme efforts to argue and insist on their specific current finding, but not to write a fix or work with the team on improving curl long-term etc. I don’t think we need more of that. There are these three bad trends combined that makes us take this step: the mind-numbing AI slop, humans doing worse than ever and the apparent will to poke holes rather than to help. ## Actions In an attempt to do something about the sorry state of curl security reports, this is what we do: * We no longer offer any monetary rewards for security reports – no matter which severity. In an attempt to remove the incentives for submitting made up lies. * We stop using Hackerone as the recommended channel to report security problems. To make the change immediately obvious and because without a bug-bounty program we don’t need it. * We refer everyone to submit suspected curl security problems on GitHub using their _Private vulnerability reporting_ feature. * We continue to immediately _ban and publicly_ _ridicule_ everyone who submits AI slop to the project. ## Maintain curl security We believe that we can maintain and continue to evolve curl security in spite of this change. Maybe even improve thanks to this, as hopefully this step helps prevent more people pouring sand into the machine. Ideally we reduce the amount of wasted time and effort. I believe the best and our most valued security reporters still will tell us when they find security vulnerabilities. ## Instead If you suspect a security problem in curl going forward, we advise you to head over to GitHub and submit them there. Alternatively, you send an email with the full report to `security @ curl.se`. In both cases, the report is received and handled privately by the curl security team. But with _no monetary reward offered_. ## Leaving Hackerone Hackerone was good to us and they have graciously allowed us to run our program on their platform for free for many years. We thank them for that service. As we now drop the rewards, we feel it makes a clear cut and displays a clearer message to everyone involved by also moving away from Hackerone as a platform for vulnerability reporting. It makes the change more visible. ## Future disclosures It is probably going to be harder for us to publicly disclose every incoming security report in the same way we have done it on Hackerone for the last year. We need to work out something to make sure that we can keep doing it at least imperfectly, because I believe in the goodness of such transparency. ## We stay on GitHub Let me emphasize that this change does not impact our presence and mode of operation with the curl repository and its hosting on GitHub. We hear about projects having problems with low-quality AI slop submissions on GitHub as well, in the form of issues and pull-requests, but for curl we have not (yet) seen this – and frankly I don’t think switching to a GitHub alternative saves us from that. ## Other projects do better Compared to others, we seem to be affected by the sloppy security reports to a higher degree than the average Open Source project. With the help of Hackerone, we got numbers of how the curl bug-bounty has compared with other programs over the last year. It turns out curl’s program has seen more volume and noise than other public open source bug bounty programs in the same cohort. Over the past four quarters, curl’s inbound report volume has risen sharply, while other bounty-paying open source programs in the cohort, such as Ruby, Node, and Rails, have not seen a meaningful increase and have remained mostly flat or declined slightly. In the chart, the pink line represents curl’s report volume, and the gray line reflects the broader cohort. Inbound Report Volume on Hackerone: curl compared to OSS peers We suspect the idea of getting money for it is a big part of the explanation. It brings in real reports, but makes it too easy to be annoying with little to no penalty to the user. The reputation system and available program settings were not sufficient for us to prevent sand from getting into the machine. The exact reason why we suffer more of this abuse than others remains a subject for further speculation and research. ## If the volume keeps up There is a non-zero risk that our guesses are wrong and that the volume and security report frequency will keep up even after these changes go into effect. If that happens, we will deal with it then and take further appropriate steps. I prefer not to overdo things or _overplan_ already now for something that ideally does not happen. ## We won’t charge People keep suggesting that one way to deal with the report tsunami is to _charge_ security researchers a small amount of money for the privilege of submitting a vulnerability report to us. A _curl reporters security club_ with an entrance fee. I think that is a less good solution than just dropping the bounty. Some of the reasons include: * Charging people money in an International context is complicated and a maintenance burden. * Dealing with charge-backs, returns and other complaints and friction add work. * It would limit who could or would submit issues. Even some who actually find legitimate issues. Maybe we need to do this later anyway, but we stay away from it for now. ## Pull requests are less of a problem We have seen other projects and repositories see similar AI-induced problems for pull requests, but this has not been a problem for the curl project. I believe for PRs we have better much means to sort out the weed with automatic means, since we have tools, tests and scanners to verify such contributions. We don’t need to waste any human time on pull requests until the quality is good enough to get green check-marks from 200 CI jobs. ## Related I will do a talk at FOSDEM 2026 titled Open Source Security in spite of AI that of course will touch on this subject. ## Future We never say never. This is now and we might have reasons to reconsider and make a different decision in the future. If we do, we will let you know. These changes are applied now with the hope that they will have a positive effect for the project and its maintainers. If that turns out to not be the outcome, we will of course continue and apply further changes later. ## Media Since I created the pull request for updating the bug-bounty information for curl on January 14, almost two weeks before we merged it, various media picked up the news and published articles. Long before I posted this blog post. * The Register: Curl shutters bug bounty program to remove incentive for submitting AI slop * Elektroniktidningen: cURL removes bug bounties * Heise online: curl: Projekt beendet Bug-Bounty-Programm * Neowin: Beloved tool, cURL is shutting down its bug bounty over AI slop reports * Golem: Curl-Entwickler dreht dem “KI-Schrott” den Geldhahn zu * Linux Easy: cURL chiude il programma bug bounty: troppi report generati dall’AI * Bleeping Computer: Curl ending bug bounty program after flood of AI slop reports * The New Stack: Drowning in AI slop, cURL ends bug bounties * Ars Technica: Overrun with AI slop, cURL scraps bug bounties to ensure “intact mental health” * PressMind Labs: cURL ko?czy program bug bounty – czy to koniec jako?ci zg?osze?? * Socket: curl Shuts Down Bug Bounty Program After Flood of AI Slop Reports Also discussed (indirectly) on Hacker News.
daniel.haxx.se
January 26, 2026 at 8:25 AM
Reposted by Duncan Brown
So it looks like the government is announcing a National Police Service. Again.

It's one of those ideas that seems perfect from the outside, but yet we never seem to be able to get right.

It got my brain whirring, so I wrote up some reflections.

andreasthinks.me/posts/reflec...

#Policing #uk
Reflecting on the National Police Service – Andreas Varotsis
So we’re doing this again…
andreasthinks.me
January 25, 2026 at 4:20 PM
Reposted by Duncan Brown
formats over apps
A Social Filesystem — overreacted
Formats over apps.
overreacted.io
January 18, 2026 at 7:05 AM
Reposted by Duncan Brown
How many govt services end up crocked, despite the efforts of skilled teams. (Policy and delivery being treated as separate. Shared platform cosplay. Leaders rotating off every 2yrs.) medium.com/@veroj/inter...
Interface failure is leadership failure
Thousands of support requests rained down on our teams for the second autumn in a row.
medium.com
January 14, 2026 at 10:19 AM
Reposted by Duncan Brown
Wrote about my first 7 months transforming the technology underpinning the national breast screening programme: lizlutgendorff.substack.com/p/lessons-le...
Lessons learned after 7 months at NHSE
Not what I expected but in a good way.
lizlutgendorff.substack.com
January 6, 2026 at 10:57 AM
My sense is that the Test and Learn movement in the public sector anchors much more on “build-and-test” than “describe-and-defend” as this essay sets them out… possibly to its detriment?
In a new blog post, I contrast two flavors of empiricism: the one practiced in the social sciences and the one practiced in ML/CS.

I argue that we need both, given that CS is increasingly about "claims," and not just constructing artifacts.

doomscrollingbabel.manoel.xyz/p/the-empiri...
January 4, 2026 at 9:34 PM
“You want your structural engineers to be drawing, not laying bricks, after all. I don’t know if structural engineering works like this, but software engineering doesn’t. In practice, architecture advice often has to be ignored by the people on the ground.”

www.seangoedecke.com/you-cant-des...
You can't design software you don't work on
--
www.seangoedecke.com
December 29, 2025 at 8:14 PM
My 2025 #yearnote as—sorry!—a listicle.

mechanicalsurvival.com/blog/2025/
10 lessons from 2025
Technology & identity in GDS and the NHS
mechanicalsurvival.com
December 27, 2025 at 11:54 AM
I disagree with the conclusions of this excellent, reasonable article by @zoescaman.bsky.social zoescaman.substack.com/p/the-palant...
The Palantir Model
Where Strategy Goes Next
zoescaman.substack.com
December 8, 2025 at 6:18 PM
Reposted by Duncan Brown
One of the many joys of using AI for programming is the creation of huge PRs on complex topics that the authors barely understand, but still suggest "because they work". Here's a great example from #OCaml github.com/ocaml/ocaml/...

Kudos to OCaml's maintainers for handling this so gracefully.
DWARF support for macOS and Linux by joelreymont · Pull Request #14369 · ocaml/ocaml
DWARF v5 Debugging Support for OCaml Native Compiler This PR adds DWARF v5 debug information to the OCaml native compiler, allowing proper source-level debugging in GDB and LLDB. What's Impleme...
github.com
November 24, 2025 at 9:48 AM
This really resonates. Meetings are the synchronisation penalty public servants pay for an overwhelmingly synchronous, distributed system of management. The “meeting culture” is not optional—it expresses a cultural void where autonomy can’t flourish.
Sthg I don't specifically call out in this blog post on AI notetakers is how awful some bits of govt meeting culture appear to be. The bit about presenteeism directly reflects feedback from
junior folk who talked about how important it is to turn up to meetings www.careful.industries/blog/2025-11...
Nine risks caused by AI notetakers — Careful Industries
AI transcription tools are not currently mature or reliable enough to be regarded as an always on, single-source of truth for meeting notes. Nine common risks, and six possible mitigations.
www.careful.industries
November 22, 2025 at 12:50 PM
Reposted by Duncan Brown
This fantastic paper "proposes a vision of AI that embraces local vernaculars, the multiplicity of objectives, the responsibilities that come with producing persons, and the potential of instigating rather than circumventing political contestation."

read.dukeupress.edu/public-cultu...
From Thin to Thick | Public Culture | Duke University Press
read.dukeupress.edu
November 8, 2025 at 7:54 AM
A few ideas on what "good software" (not "good code"!) is, touching ethics, interop, commercials and functionality

🧵
for context: the second edition of "Observability Engineering" starts off swinging with an opinionated chapter called "The Fundamentals of Building Good Software".

which begs the question... what IS ✨ good software ✨?

i'll drop my answers 👇 but curious to hear others.
@charity.wtf asked a great question on LinkedIn today. Her question was: "What is ✨ good software ✨?"

I'd love to hear your answers, but I'd also like to share mine. So if you'll allow me a moment of indulgence... 🧵
October 27, 2025 at 6:41 AM
"[Open standards] can feel like a burden to the participants. They should! The alternative is each product imposes its incompatible opinions directly on the users rather than working through the trade-offs with competitors first."

Yet as we outsource "the work" to suppliers, we outsource this too.
Several current and former NHS staff have told me similar, angry stories about what happens to our old health records after the contract for a new, incompatible IT system is signed.

It turns out proprietary storage formats are a problem:
oli.zilla.org.uk/2025/10/20/w...
October 23, 2025 at 10:13 AM
This morning's AWS outage prompted reflections in NHSE towers that "disaster recovery" and "inclusive services" directly overlap. For instance, the Record a vaccination service have designed a paper-only data capture process for when the internet is unavailable
October 20, 2025 at 10:18 AM
Clichés take hold in political language, a vicious cycle that runs through campaign speeches, through citizens’ expectations, and down into the software we build or procure by cliché, whose accordingly poor performance invites further calls for simplification. mechanicalsurvival.com/blog/design-...
Design by cliché
We reject cliché. We require true names
mechanicalsurvival.com
October 18, 2025 at 7:11 AM
Reposted by Duncan Brown
a wonderfully humane take on the real consequences of our choices around ai and teamwork and diversity and pretty sure i would have been ugly crying by the end.
October 8, 2025 at 10:03 PM
Reposted by Duncan Brown
Some reflections on @duncanjbrown.com's recent article "Team dynamics after AI", which is one of the best/most important pieces of writing I've read on AI in a long time
October 8, 2025 at 9:41 AM
Why yes that IS a @charity.wtf sticker on my work notebook! 💖
October 4, 2025 at 10:31 AM
Why I don't believe in "small giants": mechanicalsurvival.com/blog/team-dy...
Team dynamics after AI
Small giants and real giants
mechanicalsurvival.com
October 3, 2025 at 2:48 PM
If prompts are all we have left to record our intentions when we're programming, we should keep them. Automatically, if possible. mechanicalsurvival.com/blog/prompts...
Prompts are design documents
...and we should keep them
mechanicalsurvival.com
July 29, 2025 at 6:52 AM
In praise of AI applications that can finish. mechanicalsurvival.com/blog/structu...
Structuring unstructured data is a correct use of AI
Who wouldn't want to be desirable, verifiable and adoptable?
mechanicalsurvival.com
July 9, 2025 at 6:49 PM
Reposted by Duncan Brown
A *massive* thank you to @duncanjbrown.com, Elliot from HFEA, @ayymanduh.bsky.social and @mrdudders.bsky.social for being brilliant at Data Bites last night - one of the best we've done

Watch back as live: app.sli.do/event/6buz4o...

#pddatabites
March 6, 2025 at 8:55 AM
Reposted by Duncan Brown
If you're interested in UK #govtech or #opendata, the Incubator for AI have just open-sourced this like of "Awesome UK Government Datasets" and are looking for contributors!

github.com/i-dot-ai/awe...
GitHub - i-dot-ai/awesome-gov-datasets: A curated set of references to useful UK Government datasets
A curated set of references to useful UK Government datasets - GitHub - i-dot-ai/awesome-gov-datasets: A curated set of references to useful UK Government datasets
github.com
January 8, 2025 at 10:11 AM
🧵 Some standout quotes from this paper, which uses the Prison Service as an example of how centralised political control can impoverish us when it annihilates the autonomy of people directly responsible for delivering public services: bristoluniversitypressdigital.com/view/journal...
bristoluniversitypressdigital.com
January 3, 2025 at 1:52 PM