Brendan Dolan-Gavitt
@moyix.net
AI researcher at XBOW. Security, RE, ML. PGP http://keybase.io/moyix/
Such a cool exploit needs commensurately cool bling, so Alvaro (who wrote up the excellent post on this vuln) created this lovely little TUI so you can watch as it exfiltrates files from your server byte by byte
July 28, 2025 at 10:14 PM
Such a cool exploit needs commensurately cool bling, so Alvaro (who wrote up the excellent post on this vuln) created this lovely little TUI so you can watch as it exfiltrates files from your server byte by byte
So how do you precisely read a byte? Easy: you ask for the pixel histogram of a raw image consisting of byte [i...i+1] of the file. And you get back something like
histogram: [0, 0, 1, 0, 0], [59.8, 59.9, 60.0, 60.1, 60.2]
Telling you that the byte is ASCII 60 ('<')
histogram: [0, 0, 1, 0, 0], [59.8, 59.9, 60.0, 60.1, 60.2]
Telling you that the byte is ASCII 60 ('<')
July 28, 2025 at 10:13 PM
So how do you precisely read a byte? Easy: you ask for the pixel histogram of a raw image consisting of byte [i...i+1] of the file. And you get back something like
histogram: [0, 0, 1, 0, 0], [59.8, 59.9, 60.0, 60.1, 60.2]
Telling you that the byte is ASCII 60 ('<')
histogram: [0, 0, 1, 0, 0], [59.8, 59.9, 60.0, 60.1, 60.2]
Telling you that the byte is ASCII 60 ('<')
To decode it, XBOW had to realize that the file contents had been encoded using an encoding that stores pixels as deltas from the previous pixel. So cool!
July 28, 2025 at 10:12 PM
To decode it, XBOW had to realize that the file contents had been encoded using an encoding that stores pixels as deltas from the previous pixel. So cool!
This is one of the dumber reasons I've had some software fail: dying because it couldn't call ftruncate on /dev/null
May 14, 2025 at 7:48 PM
This is one of the dumber reasons I've had some software fail: dying because it couldn't call ftruncate on /dev/null
XBOW is growing and we're looking for talented folks to join us! Apply here: jobs.ashbyhq.com/xbowcareers
April 24, 2025 at 3:52 PM
XBOW is growing and we're looking for talented folks to join us! Apply here: jobs.ashbyhq.com/xbowcareers
Announcing CheatGPT, a revolutionary model that achieves SoTA on HumanEval! It's incredibly sample-efficient – just ONE training sample – and *tiny*, fitting on your Casio wristwatch!
April 1, 2025 at 7:19 PM
Announcing CheatGPT, a revolutionary model that achieves SoTA on HumanEval! It's incredibly sample-efficient – just ONE training sample – and *tiny*, fitting on your Casio wristwatch!
Erin go bragh, cow go moo
March 18, 2025 at 1:42 AM
Erin go bragh, cow go moo
Not to brag but my brother has had TWO movies he co-wrote come out this year :D
March 8, 2025 at 6:29 PM
Not to brag but my brother has had TWO movies he co-wrote come out this year :D
Making security benchmarks for AI is tricky sometimes
February 17, 2025 at 1:46 PM
Making security benchmarks for AI is tricky sometimes
@xbow.com has been busy in the first few weeks of 2025 – our agent has autonomously found 106 vulnerabilities in OSS projects, and we've reported 72 so far! Amazing work by @nicowaisman.bsky.social and the security team triaging these and getting them into the disclosure->fix pipeline!
February 6, 2025 at 6:55 PM
@xbow.com has been busy in the first few weeks of 2025 – our agent has autonomously found 106 vulnerabilities in OSS projects, and we've reported 72 so far! Amazing work by @nicowaisman.bsky.social and the security team triaging these and getting them into the disclosure->fix pipeline!
Duck typing? You're thinking too small. With AI, we can finally take Guido van Rossum's dream to its logical conclusion
January 6, 2025 at 9:16 PM
Duck typing? You're thinking too small. With AI, we can finally take Guido van Rossum's dream to its logical conclusion
hurts_just_a_little_bit.jpg
December 3, 2024 at 2:20 AM
hurts_just_a_little_bit.jpg
Do click through to the full trace too; it's very neat to see the details of how it reads through the code to identify vulnerable endpoints xbow.com#dockerhub-sr...
November 22, 2024 at 4:51 PM
Do click through to the full trace too; it's very neat to see the details of how it reads through the code to identify vulnerable endpoints xbow.com#dockerhub-sr...
The Scoold developers were super responsive and published a fix quickly once we reported the issue! From the patch we can see what the root cause was – using an API that doesn't normalize paths when performing the access check: github.com/Erudika/scoo...
November 14, 2024 at 4:20 PM
The Scoold developers were super responsive and published a fix quickly once we reported the issue! From the patch we can see what the root cause was – using an API that doesn't normalize paths when performing the access check: github.com/Erudika/scoo...
3) I've also come to really appreciate how LLMs' breadth of knowledge lets them pull off cool exploits. I'd never heard of HOCON and I don't know much about Java servlets, but here XBOW manages to leverage HOCON file includes to read *arbitrary* files
November 14, 2024 at 4:18 PM
3) I've also come to really appreciate how LLMs' breadth of knowledge lets them pull off cool exploits. I'd never heard of HOCON and I don't know much about Java servlets, but here XBOW manages to leverage HOCON file includes to read *arbitrary* files
2) It did a great job reasoning here about how to make progress, and then executed on it really well with a Python script that systematically looks for path-related auth bypasses – and succeeds!
November 14, 2024 at 4:16 PM
2) It did a great job reasoning here about how to make progress, and then executed on it really well with a Python script that systematically looks for path-related auth bypasses – and succeeds!
There are a lot of cool moments in the full trace, but some of my favorites: 1) It only has a JAR file, but it is able to discover endpoints and RE the config file loader by disassembling the bytecode
November 14, 2024 at 4:13 PM
There are a lot of cool moments in the full trace, but some of my favorites: 1) It only has a JAR file, but it is able to discover endpoints and RE the config file loader by disassembling the bytecode
The vuln was pretty severe – it let unauthenticated attackers see the site config (including API secrets like these), modify the config to become admin, and even read arbitrary files on the server
November 14, 2024 at 4:12 PM
The vuln was pretty severe – it let unauthenticated attackers see the site config (including API secrets like these), modify the config to become admin, and even read arbitrary files on the server