frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
518•klaussilveira•9h ago•145 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
852•xnx•14h ago•512 comments

How we made geo joins 400× faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
65•matheusalmeida•1d ago•13 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
169•isitcontent•9h ago•21 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
172•dmpetrov•9h ago•77 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
286•vecti•11h ago•129 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
65•quibono•4d ago•11 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
340•aktau•15h ago•166 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
335•ostacke•15h ago•90 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
425•todsacerdoti•17h ago•223 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
232•eljojo•12h ago•142 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
366•lstoll•15h ago•253 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
37•kmm•4d ago•3 comments

Show HN: ARM64 Android Dev Kit

https://github.com/denuoweb/ARM64-ADK
14•denuoweb•1d ago•1 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
4•videotopia•3d ago•0 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
11•romes•4d ago•1 comments

Why I Joined OpenAI

https://www.brendangregg.com/blog/2026-02-07/why-i-joined-openai.html
85•SerCe•5h ago•69 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
216•i5heu•12h ago•160 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
17•gmays•4h ago•2 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
36•gfortaine•6h ago•10 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
59•phreda4•8h ago•11 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
161•limoce•3d ago•80 comments

I spent 5 years in DevOps – Solutions engineering gave me what I was missing

https://infisical.com/blog/devops-to-solutions-engineering
124•vmatsiiako•14h ago•51 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
260•surprisetalk•3d ago•35 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
1024•cdrnsf•18h ago•425 comments

FORTH? Really!?

https://rescrv.net/w/2026/02/06/associative
53•rescrv•16h ago•17 comments

WebView performance significantly slower than PWA

https://issues.chromium.org/issues/40817676
16•denysonique•5h ago•2 comments

I'm going to cure my girlfriend's brain tumor

https://andrewjrod.substack.com/p/im-going-to-cure-my-girlfriends-brain
102•ray__•5h ago•49 comments

Evaluating and mitigating the growing risk of LLM-discovered 0-days

https://red.anthropic.com/2026/zero-days/
44•lebovic•1d ago•13 comments

Show HN: Smooth CLI – Token-efficient browser for AI agents

https://docs.smooth.sh/cli/overview
82•antves•1d ago•59 comments
Open in hackernews

Yet Another Zip Trick

https://hackarcana.com/article/yet-another-zip-trick
105•todsacerdoti•7mo ago

Comments

soupfordummies•7mo ago
Obviously it sucks in the real world but I do always appreciate the cleverness of exploits like these.
netsharc•7mo ago
The described exploit seems theoretical. In order to create the schizophrenic ZIP, the attacker would have to figure out what ZIP stacks are being used and ensure they act differently - if the 2 departments use the same stack, then the exploit can't work, can it?
B1FF_PSUVM•7mo ago
Like spam, the exploit would still be profitable if only a small fraction worked.
wat10000•7mo ago
A more realistic attack would be something like, slipping a malicious payload past a scanner by emailing a zip file that appears innocent when unpacked with the scanner’s zip implementation but produces malware when unpacked with the email client’s implementation. There’s a decent chance they’ll be different, and it wouldn’t be too hard to guess which ones a target might be using.
o11c•7mo ago
Often you don't have to guess, just use how the software responds as an oracle.
JdeBP•7mo ago
None of this stuff is theoretical. It's just old.

There was a time when passing ZIP files around was a very popular method of software distribution, and things like this were gotchas that had to be watched for. It was widely known, at least amongst sysops, that the varied toolsets that handled ZIP archives were functionally different. And there were scanners and sanity checkers, and bugfixes to PKUNZIP, that dealt in this stuff for uploaded files and FREQ responses.

Did people exploit the differences? Yes. Although it was mainly on the level of creating prank ZIP files on non-Microsoft operating systems with 8.3 filenames such as "PRN" or "CLOCK$".

* https://groups.google.com/g/alt.comp.virus/c/zLV-Y2a71gs/m/U...

However, the truly terrible idea of self-extracting archives was popular, which meant that archives with "interesting" arrangements of the archive within the overall file were widespread. ZIP comments were also liberally applied and altered by pretty much every BBS that passed an archive along. And the Unix people wanted to be able to use pipes, something that the MS-DOS original never had to cater for.

Also, there were people who exploited the fact that different tools took different things as gospel. Even within the past decade one can find people still being caught out by the fact that there's a header field that instructs what the pathname separator character(s) used are; and that ZIP tools that expect non-seekable streams operate differently to ZIP tools that expect seekable regular files.

wqweto•7mo ago
Btw, in ZIP archives there is *no* header field that instructs what the pathname separator character(s) used are.
JdeBP•7mo ago
In theory there isn't, and everyone is supposed to use forward slash. But in practice there is, because not everyone has stuck to using forward slashes over the decades. Some tools are more forgiving of the differences amongst the various ZIP archive creators than others.

These people having fun with "Unix" versus "FAT" over the past decade are seeing the tip of the iceberg, given that there was a PKZIP for OS/400, there is a PKZIP for z/OS (and a competitor that claims to be cheaper), there are tools of varying degrees of Unixiness for systems like the Atari ST and OS/2, and a whole bunch of things have accrued over the years such as an outright extra header giving alternative filenames specifically for MacOS.

* https://michaelrommel.com/create/2022-12-28-malformed-zip-fi...

* https://unix.stackexchange.com/q/166159/5132

* https://github.com/filebrowser/filebrowser/issues/1768

rendx•7mo ago
It's not unlikely that devs and such will be on Mac/Linux and accounting will be on Windows. I agree it's still somewhat theoretical but interesting nonetheless.
charleslmunger•7mo ago
Check out CVE-2017-13156 which is a real exploit that leveraged differences in zip parsing to bypass a signature scheme.
wingmanjd•7mo ago
Since docx files are similar to a zip file with the extension changed, could this trick fake out Microsoft Word?
mlyle•7mo ago
The trick depends upon different implementations doing different things. Not likely for Word (though I suppose it is -possible- across different versions or different OSes).
netsharc•7mo ago
To respond to Grandfather comment, modern Office files are really just ZIPs with different extensions, they even have the magic string "PK" at the very beginning of the file.

I do wonder, since a lot of tools outside of the MS ecosystem can read Office files (e.g. LibreOffice and Google Docs as well as plenty of other online tools), if indeed the hack as described by the article is possible. One would just need to figure out the ZIP stacks used by said tools.

saghm•7mo ago
You can even just rename a docx file to use the zip extension and then manually unzip it for those curious. If I remember correctly, the contents are XML files with structure encoding the formatting around the content.
larschdk•7mo ago
The Office365 online and desktop implementations of zip could be different.
hnlmorg•7mo ago
It’s very common for organisations to only give expensive MS Office licenses to a subset of employees while the rest rely on O365 or Google Docs.

Then you have people on Linux or macOS who might also use LibreOffice, Apples Office suite, or something else entirely.

And given MS Office is the de facto standard, you’ll often see people open OOXML documents within non-MS office suites.

After all, OOXML is an open standard (sarcasm).

ODF (the document formats favoured by most other office suites) is also ZIP-based XML. So they too could be vulnerable.

sltkr•7mo ago
docx is supposed to be a portable format. There are many tools other than Word that open them. Just LibreOffice and Google Docs for example. They might well differ from Word or from each other in how they handle this case. Definitely worth testing!
JdeBP•7mo ago
It's an interesting hole that the test cases don't cover any of Microsoft Office, Windows Explorer, PowerShell's various cmdlets, or the several major .NET ZIP archive libraries. It would seem that the author just does not use Microsoft Windows.

There's a whole extra level of archive file format tooling gotchas that one misses out on when one assumes "UNIX" for everything, and does not account for "FAT", "NTFS", "HPFS", and even "OpenVMS".

Or ZIP64. (-:

* https://github.com/dotnet/runtime/blob/main/src/libraries/Sy...

* https://github.com/mihula/ProDotNetZip/blob/main/src/Zip/Zip...

justsomehnguy•7mo ago
> As everything looks good, you forward the ZIP with the invoice to the payment team

Nope, because a typical accounting asset wouldn't make it and you know it so you forward the PDF to them.

o11c•7mo ago
I don't see anything "another" about this; this problem is well known by $((CURRENTYEAR-10)) or so.
sp0rk•7mo ago
The author explains in the article that they previously gave a presentation outlining various techniques to achieve a "schizophrenic" zip file. The blog post discusses an additional technique that was not present in their previous presentation.
amelius•7mo ago
Ok, so how do you handle them? Do you take screenshots of your PDFs before you forward them? Other ideas?
dbdr•7mo ago
You can forward the PDF itself, not the zip file.
amelius•7mo ago
I don't know much about the subject but I do know that PDF is an executable format, and I suppose it could use fingerprinting (based on e.g. screen size or resolution) to become schizophrenic (?)
gynvael•7mo ago
Author here :)

Are you saying that parser discrepancy is a well known problem OR that this exact technical issue described (CD offset vs CD size used to derive CD location) is a well known problem?

If the prior, you are of course right — parser discrepancy and the existence of these kinds of "multiple personality" files isn't a new thing. I'm pretty sure this can be traced back to at least the '80 :)

However, if you mean the latter, I would appreciate a link if you can recall where you've seen it before / read about it — I can then add it to the article.

socalgal2•7mo ago
It is not a schizophrenic zip file to have inline headers that are not referenced in the TOC. the TOC is the only source of truth in a zip file. It was designed this way in purpose so that you can add new versions of files on your 20 disk zip without having to re-write all 20 disks. Pkzip would read the TOC from disk 20, append your new file to disk 20 (or 21 if there was not enough space) and then write a new TOC at the end that does not reference the old file still in the zip. That is by design. Reading anything other than the files in the TOC is an invalid zip reader
masklinn•7mo ago
While that is true (even if some people really want to stream read zips and will thus trigger tar-style conflicts) that is not what the article is about. The article is really more about software using the "size of central directory" field to find the central directory (a sin Python's standard library apparently commits) versus the "offset of central directory".

A commenter on an other post of that article noted that technically there's no reason for the central directory to be right before the EOCD so seeking backwards from the EOCD by the size of CD is just incorrect. In fact zip was designed such that the central directory could be split across multiple disks (and later files), so it was not possible to guarantee a simple backwards jump from the EOCD to the start of CD.

cxr•7mo ago
> technically there's no reason for the central directory to be right before the EOCD so seeking backwards from the EOCD by the size of CD is just incorrect

Yes, and in fact APPNOTE.TXT expects implementations to deal with discontiguous CD/EOCD records; it actually mandates that some records appear between them. (It's where ZIP64-specific records go, for example.)

The whole thing seems to stem from a belief by the author of this post that Info-ZIP is the canonical implementation. (This is of course wrong. That would be PKZIP.)

If Info-ZIP is exhibiting the behavior described, then the Info-ZIP implementation is flat out wrong.

(This has happened before. See <https://news.ycombinator.com/item?id=27925393> where the author of that post provides pushback to Mark Adler, receives pushback from Adler in response, and then just stops pushing and defers to Adler's reading. Adler is an expert in his domain, and he's made valuable contributions to free software, but his expertise is in compression, and he's not the authority on the spec or the format; Adler didn't create ZIP or write APPNOTE.TXT—Phil Katz did.)

gynvael•7mo ago
Author here :)

> a belief by the author of this post that Info-ZIP is the canonical implementation

↑ Where did you get this from?

I don't think nowadays there's such a thing as a canonical implementation — ZIP implementation world is too fragmented and implementations are too widespread.

One more note is that the article isn't about who's right or wrong in terms of interpreting APPNOTE.TXT — this is besides the point. The point there is that a parser discrepancy can cause security issues, and the article documents just another discrepancy found in the real world implementations (and there are A LOT of these with regards to the ZIP format).

cxr•7mo ago
> this makes sense—technically both the offset of the Central Directory and the size of the Central Directory are redundant when you consider that the End of Central Directory Record should be, well, at the end of the Central Directory. In a proper ZIP file the following equation should be true: (position_of_EoCDR - size_of_CD == offset_of_CD)

This is a pretty clear statement on normativity.

You also left out an important part of my comment when you quoted it. (The operative word at the front of the sentence is "seems".)

gynvael•7mo ago
> This is a pretty clear statement on normativity.

I disagree – it's a technical remark on redundancy of fields (this is related to my hypothesis in the article that redundancy in formats is the primary cause of parser discrepancy). It doesn't acknowledge InfoZIP being canonical in any way.

> You also left out an important part of my comment when you quoted it. (The operative word at the front of the sentence is "seems".)

Fair, though my point still stands.

iforgotpassword•7mo ago
This is not what the article is talking about.

It's talking about how the EOCD contains both the size of the central directory and the offset of the start of the central directory, which is redundant. So we end up with some tools honoring the offset, while some subtract the size from the EOCD.

the_arun•7mo ago
And how bad actors could take advantage of that.
m3kw9•7mo ago
I can think they would test which parser you have using some social engineering and create the zip appropriately, but they would also need to know the accountings parser. So I think they would just do the first step and leave it up to chance.
cxr•7mo ago
It's true that the other comment is unrelated to the content of the article, but it's not true that the offset and size in the EOCD are redundant (for the reasons given in the earlier sibling comment).
jonathanlydall•7mo ago
PDFs in .zip files is in itself a huge smell to begin with.

I don't think I've actually ever received a zipped up .pdf, so it's clearly not legitimately necessary for anyone to do so and should you ever see it you should treat it highly suspiciously.

I get admin@ emails for our company domain and there is a somewhat steady stream of run of the mill fraud attempts.

A trick I've seen happen quite a lot recently is emails with .svg attachments, which have some lightly obfuscated JavaScript in them and which ultimately redirects you to some dodgy looking URL (which I never visited).

I simply made a rule to outright reject all .svg files from external sources and I get a report any time it's attempted. In about the last 12 months this has been running, it's probably blocked about 20 incoming emails and only one of those was a false positive and even the false positive was a weird case as we were sending a .svg file to a creative company who for some reason had our .svg attachment in their reply back to us.

Joker_vD•7mo ago
Well, there is a case for PDFs in a .zip, but it's when you're e.g. downloading some set of documents from your e-government site, and it's like 4 PDFs, all cryptographically signed: so you get a .zip with 4 PDFs in it and 4 .sig files with matching names.

But in emails? Just attach however many PDFs you need and send, they don't really compress anyway; and I think most web-mail fronts actually allow you to download all the attachments as a single .zip — but obviously those .zip-files are not maliciously crafted (I hope, at least).

Also, now that I think of it, forwarding the PDF you've extracted and visually reviewed instead of the original .zip-file would defeat this attack (unless, of course, it's the PDF file that's schizophrenic).

b112•7mo ago
The other reason is to use zip's incredibly mega super secure password protection, to keep super secret docs safe.

(I see it all the time. Along with the password in the very same email)

gcarvalho•7mo ago
I’m not saying this is good security hygiene, but not necessarily everyone with access to the file will also have access to the password in the email.

e.g. someone downloaded the password protected zip on a public computer, logged out of their email, but forgot to delete the file.

blincoln•7mo ago
This is often a useful practice, because it prevents providers' badly-written/-configured attempts at antimalware from blocking files that the recipient knows they want to accept.
justin66•7mo ago
> I don't think I've actually ever received a zipped up .pdf, so it's clearly not legitimately necessary for anyone to do so and should you ever see it you should treat it highly suspiciously.

What kind of crazy logic is that?

nijave•7mo ago
Not sure... S.O. is an accountant and they're constantly emailing zips of Excel files and PDFs. Most of the monthly financials are a handful of different reports and they all get zipped together and emailed around.

I'm sure there's other common reporting use cases as well