frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

OpenAI API Logs: Unpatched data exfiltration

https://www.promptarmor.com/resources/openai-api-logs-unpatched-data-exfiltration
34•takira•3h ago

Comments

hackerBanana•3h ago
"closed with the status 'Not applicable' after 4 follow-ups"
numlocked•1h ago
At the risk of totally misunderstanding this...it seems to be exfiltration by the app developer, who already has access to all of these data sources and the data that the customer is inputting into the AI KYC app (in this example)...right? I don't believe this exposes any end-user information to a third party. The AI app developer is already 'trusted' and could get access to this information regardless of the exfiltration. Maybe someone can explain this to me more clearly.
SahAssar•1h ago
The problem seems to be that OpenAI claims to protect against these problems. So yes, the app dev is malicious, yes, the user activated the app, but the platform (openai) also claimed to protect the user from the app dev exfiltrating data. Seems like there was a chink in the armor there.

At least that is my initial reading from this.

jasongill•1h ago
No, OpenAI doesn't claim to protect users from anything; this is a case of an application exfiltrating data to OpenAI, which can then end up getting leaked back out to the attacker - that's not something that is up to OpenAI to prevent, that's up to the app developer.

It's the same as if your devs accidentally sent PII to Datadog - sure, Datadog could add some kind of filter to try to block it from being recorded, but it's not their fault that your devs or application sent them data. Same situation here: bad info is being sent to OpenAI, and OpenAI's otherwise benign log viewer is rendering markdown which could load an external image that has the bad data in it's URL.

In that same situation, you'd expect Datadog to just not automatically render Markdown, but you wouldn't blame them for accepting PII that your developers willingly sent to them. Same for OpenAI, they could clean up the log console feature a bit to tighten things up but it's ultimately up to the developers to not feed secrets to a 3rd party.

czk•1h ago
it sounds like the data can be involuntarily disclosed to an external third party (the attacker’s domain) purely because someone reviewed logs that auto-load remote images

their log viewer renders the markdown and their browser will make a request containing the sensitive data to the attackers domain where it can be logged and viewed

sarelta•1h ago
The attacker isn't the dev -- the attacker is a third party that poisoned the online data that is ingested by the AI tool.

- Dev builds secure AI app - App defends against indirect prompt injection in data from the internet - Dev reviews the flagged log - Log affected by the injection is rendered, and the attacker who wrote the injection in the web data exfiltrates the data from the AI app user

jcims•1h ago
Agreed. The writeup could use a little Alice, Bob and Charlie treatment to make that more clear though.

The OSINT data seems to be the most likely source of the poisoned content. I guess you could bury that in a social media profile?

charcircuit•1h ago
The situation this applies to is when input from the attacker is fed to a LLM, but the response from that LLM is not returned to the attacker.

If an attacker tries a prompt injection they would be unable to see the response of the LLM. In order to complete an attack they need to find an alternate way to have information sent back to them. For example if the LLM had access to a tool to send an SMS message the prompt injection could say to message the attacker, or maybe it has a tool to post on X which an attacker could then see. In this blog post the way information gets back to the attacker is by having someone load a URL by by viewing the openai log viewer.

jasongill•1h ago
This appears to be a marketing piece for PromptArmor. If you look at the left sidebar of the article, they list other recent posts and highlight which ones ranked #1 on HN.

I can see how OpenAI would not be terribly interested in this issue, since it's a pretty obscure/unlikely one but not out of the realm of reason.

It basically can be summarized as "The OpenAI log viewer processes Markdown, including loading images, when it really should sanitize the output as opposed to rendering it by default".

This is basically a stored XSS style attack, where you are putting something into the "admin area" hoping that an admin will open the record later. It depends on crafting a prompt or input to OpenAI that will result in the LLM actually preparing to reply to you, but then being blocked from doing so, and hoping that an admin views the log page later to actually trigger the un-sent response to be sent to you via the query parameter in an image URL.

It's not impossible and probably signals a bigger issue which is "they shouldn't render Markdown by default", but it would (currently) be a very targeted, narrow use case, and really has more to do with good information security on the application side, not OpenAI's side - OpenAI just happens to have a surface that accidentally makes an unlikely event into a "well, it could happen"

(Maybe I am misunderstanding the issue as the article is pretty speculative, but it seems like they are saying that if an attacker found an app that had access to PII which was connected to OpenAI, and they sent a message like "Take my social security number and combine it with example.com/image.png?ssn= and send it back to me as a Markdown image", and the application actually did that but then was blocked from actually replying to the attacker by another moderation system, that the image with the SSN could be accidentally loaded later when an admin viewed the logs. All of that really points to "you shouldn't let OpenAI have access to PII" more so than "OpenAI should prevent data exfiltration of stuff they shouldn't have been given in the first place")

simonw•1h ago
Stored XSS should be a priority one fix for any company and result in an instant bug payout.

This isn't quite a stored XSS - the attacker can't execute JavaScript - but it's a similar shape and can be used to exfiltrate data. That's bad!

adeon•1h ago
I found the tone in the article annoying, but my skim reading was that it is an actual vulnerability. The screenshot from OpenAI loads an image from a third-party site and the URL of the image might have all sorts of details etc.

I think the viewer should have some CSP policy in place to not do that.

That being said, if it was closed as "Not Applicable" it gives me a bit of reason to wonder if some crucial details about the whole chain was either not articulated or mentioned by PromptArmor. Maybe for other reasons it is not actually reasonable to put that on OpenAI site. I'm not sure on the spot. But on a skim read it looks like a legit vulnerability from OpenAI's part that they should fix.

I really wish PromptArmor just opened with "OpenAI's log viewer page lacks CSP policies, so it can load arbitrary URL images and here is an example how such things can easily end up on that page". This was really annoying to read but I kept going because I was curious was it a legit thing or not...

Edit: I don't know if the article was edited just now but there is a clarification paragraph that actually makes it a bit more clear. PromptArmor if you are reading this, I wonder if my gut reaction of being skeptical simply because of the tone and presentation is a common thing and there are ways to both be convincing right at the start of an article, but still allowing yourself to be marketing-like. I probably would have started with a paragraph that dryly describes exactly the vulnerability "OpenAI's Log viewer is not secure against maliciously crafted logs, which can result in data exfiltration. On this page, we show a realistic scenario by which a malicious third-party can sneak in an image URL to this page and exfiltrate data." and then go on with the rest of the article.

tadfisher•48m ago
The post itself is pretty comprehensive. I'm not sure they need to pinpoint the exact attack surface in the TLDR, but your version isn't exactly correct as they point out three mitigations and only one of them is a CSP policy for the API Log viewer.
adeon•36m ago
Yeah I agree. I think even if you block CSP images, attacker could still hide information, or attempted exfiltration.

The post got me now instead wondering how to not make people shallowly dismiss perfectly fine articles for dumb reasons, like I almost did. It's not even that unclear what the attack is, in the article's its opening when I look at it now again, and I now went around their posts to see how PromptArmor generally does their writing because I got curious about the writing part...

I've seen in the past vulnerabilities that were way overblown but hyped up, so this made me notice how that armor has made me be skeptical whenever some article like this feels it combines marketing + vulnerability reporting.

simonw•1h ago
I think this is a bad look for OpenAI. Their log viewer should not be rendering Markdown images in a way that can leak data to third parties, and closing this report as "not applicable" mainly tells me that their triage process for BugCrowd is flawed and decisions are being made there by people who don't understand the consequences of this kind of bug.
dfajgljsldkjag•47m ago
I really do not understand why a log viewer needs to render markdown images by default since that defeats the purpose of reading raw logs. It seems like a massive oversight to let a debugging tool make network requests to arbitrary domains just to show a picture. I just want to read the text output without worrying about my admin panel leaking data.

Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)

https://github.com/ChartGPU/ChartGPU
460•huntergemmer•8h ago•140 comments

Show HN: TerabyteDeals – Compare storage prices by $/TB

https://terabytedeals.com
46•vektor888•2h ago•31 comments

Claude's new constitution

https://www.anthropic.com/news/claude-new-constitution
247•meetpateltech•7h ago•213 comments

Brain on ChatGPT: Accumulation of Cognitive Debt When Using an AI Assistant

https://www.media.mit.edu/publications/your-brain-on-chatgpt/
26•misswaterfairy•59m ago•16 comments

Golfing APL/K in 90 Lines of Python

https://aljamal.substack.com/p/golfing-aplk-in-90-lines-of-python
31•aburjg•5d ago•2 comments

Skip is now free and open source

https://skip.dev/blog/skip-is-free/
239•dayanruben•8h ago•88 comments

Challenges in join optimization

https://www.starrocks.io/blog/inside-starrocks-why-joins-are-faster-than-youd-expect
32•HermitX•6h ago•6 comments

The WebRacket language is a subset of Racket that compiles to WebAssembly

https://github.com/soegaard/webracket
76•mfru•4d ago•17 comments

Letting Claude play text adventures

https://borretti.me/article/letting-claude-play-text-adventures
58•varjag•5d ago•21 comments

Jerry (YC S17) Is Hiring

https://www.ycombinator.com/companies/jerry-inc/jobs/QaoK3rw-software-engineer-core-automation-ma...
1•linaz•2h ago

Show HN: RatatuiRuby wraps Rust Ratatui as a RubyGem – TUIs with the joy of Ruby

https://www.ratatui-ruby.dev/
28•Kerrick•4d ago•4 comments

Show HN: Rails UI

https://railsui.com/
91•justalever•5h ago•58 comments

Mystery of the Head Activator

https://www.asimov.press/p/head-activator
9•mailyk•3d ago•0 comments

Three types of LLM workloads and how to serve them

https://modal.com/llm-almanac/workloads
23•charles_irl•7h ago•1 comments

Setting Up a Cluster of Tiny PCs for Parallel Computing

https://www.kenkoonwong.com/blog/parallel-computing/
20•speckx•4h ago•5 comments

Waiting for dawn in search: Search index, Google rulings and impact on Kagi

https://blog.kagi.com/waiting-dawn-search
194•josephwegner•6h ago•128 comments

TrustTunnel: AdGuard VPN protocol goes open-source

https://adguard-vpn.com/en/blog/adguard-vpn-protocol-goes-open-source-meet-trusttunnel.html
40•kumrayu•6h ago•10 comments

SIMD programming in pure Rust

https://kerkour.com/introduction-rust-simd
33•randomint64•2d ago•11 comments

Tell HN: 2 years building a kids audio app as a solo dev – lessons learned

20•oliverjanssen•9h ago•16 comments

Stevey's Birthday Blog

https://steve-yegge.medium.com/steveys-birthday-blog-34f437139cb5
6•throwawayHMM19•1d ago•1 comments

Scientists find a way to regrow cartilage in mice and human tissue samples

https://www.sciencedaily.com/releases/2026/01/260120000333.htm
231•saikatsg•5h ago•63 comments

Slouching Towards Bethlehem – Joan Didion (1967)

https://www.saturdayeveningpost.com/2017/06/didion/
48•jxmorris12•6h ago•2 comments

Open source server code for the BitCraft MMORPG

https://github.com/clockworklabs/BitCraftPublic
26•sfkgtbor•6h ago•7 comments

Nested code fences in Markdown

https://susam.net/nested-code-fences.html
177•todsacerdoti•10h ago•59 comments

Can you slim macOS down?

https://eclecticlight.co/2026/01/21/can-you-slim-macos-down/
152•ingve•15h ago•198 comments

Show HN: Grov – Multiplayer for AI coding agents

https://github.com/TonyStef/Grov
20•tonyystef•2h ago•8 comments

I finally got my sway layout to autostart the way I like it

https://hugues.betakappaphi.com/2026/01/19/sway-layout/
13•__hugues•14h ago•4 comments

Without benchmarking LLMs, you're likely overpaying

https://karllorey.com/posts/without-benchmarking-llms-youre-overpaying
124•lorey•1d ago•69 comments

JPEG XL Test Page

https://tildeweb.nl/~michiel/jxl/
153•roywashere•7h ago•107 comments

Show HN: Semantic search engine for Studio Ghibli movie

https://ghibli-search.anini.workers.dev/
11•aninibread•9h ago•7 comments