frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

FDA authorizes first wearable device that monitors ketone and blood sugar levels

https://www.fda.gov/news-events/press-announcements/fda-authorizes-first-wearable-device-continuo...
167•sunnynagra•3h ago•109 comments

Python's pre-declared constants are kinda weird

https://sebsite.pw/w/20260801-pythonconstants.html
29•rbanffy•45m ago•3 comments

Apple introduces M6 and M5 Ultra

https://www.apple.com/newsroom/2026/08/apple-introduces-m6-and-m5-ultra-for-a-big-leap-in-perform...
872•interpol_p•9h ago•801 comments

OpenAI Jalapeño: Better than Nvidia Blackwell

https://newsletter.semianalysis.com/p/openai-jalapeno-better-than-nvidia
242•bmulholland•8h ago•160 comments

New Mac Studio with M5 Max and M5 Ultra

https://www.apple.com/newsroom/2026/08/apple-introduces-new-mac-studio-with-m5-max-and-m5-ultra/
665•interpol_p•9h ago•407 comments

Black hole singularity is a surface not a point

https://arxiv.org/abs/2608.21590
151•raattgift•5h ago•104 comments

When str.lower() is a security vulnerability in Python – Seth Larson

https://sethmlarson.dev/when-str-lower-is-a-security-vulnerability
26•rbanffy•1h ago•13 comments

Show HN: I made a Raspberry with Qwen my local car AI

https://github.com/ThinkOffApp/CarWatch
73•petruspennanen•7h ago•16 comments

New Mac mini, featuring M6 and M5 Pro

https://www.apple.com/newsroom/2026/08/apple-unveils-a-more-powerful-mac-mini-featuring-the-all-n...
392•runako•9h ago•220 comments

C2PA Cameras Do Not Survive Contact with Reality

https://www.da.vidbuchanan.co.uk/blog/android-c2pa.html
38•Retr0id•2h ago•10 comments

Run OpenBSD on DigitalOcean for $4/month

https://nil.wallyjones.com/run-openbsd-on-digitalocean-for-4month/
95•speckx•5h ago•38 comments

Nitter project received cease and desist

https://github.com/zedeus/nitter/issues/1442
456•Banditoz•5h ago•305 comments

Bomb fishing is wreaking havoc on Indonesia's coral reefs

https://e360.yale.edu/digest/bomb-fishing-coral-reefs
233•speckx•7h ago•128 comments

Dolly Parton has died

https://www.theguardian.com/music/2026/aug/25/dolly-parton-country-singer-dead
990•helsinkiandrew•4h ago•148 comments

Building a backyard office, the build and cost breakdown

https://www.imkylelambert.com/articles/building-a-backyard-office-the-build-and-cost-breakdown
226•surprisetalk•8h ago•168 comments

Clara (YC P26) is hiring a growth engineer to bring AI doctors to market

https://www.ycombinator.com/companies/clara-2/jobs/8snci6k-founding-full-stack-growth-engineer
1•gfavvas•4h ago

One Go binary, one YAML file, one SQLite database: I wrote my monitoring tool

https://rvier.fr/posts/why-i-wrote-my-own-monitoring-tool-EN
6•brvier•40m ago•1 comments

Show HN: LatticeDB – Like SQLite but for graph databases

https://github.com/jeffhajewski/latticedb
84•smiths1999•5h ago•27 comments

Tooltips need a delay, and then they need to skip it

https://blog.master.dev/tooltips-need-a-delay-and-then-they-need-to-skip-it/
91•ibobev•5h ago•18 comments

My Friend Aaron

https://rorz.io/writing/my-friend-aaron
376•sarreph•5h ago•93 comments

Firefox 157 will include JPEG XL by default on all platforms

https://groups.google.com/a/mozilla.org/g/dev-platform/c/3YMV4MS34KA?pli=1
216•yboris•4h ago•46 comments

Don't Wordle

https://dontwordle.com/
279•Hbruz0•10h ago•110 comments

A brief history of federal lift ticket regulation

https://zakpodmore.substack.com/p/a-brief-history-of-federal-lift-ticket
7•CGMthrowaway•2h ago•0 comments

Starbase, LA

https://www.spacex.com/sites/starbase-la
183•bilsbie•5h ago•299 comments

XCancel also down, at least for time being

34•orange999•1h ago•1 comments

Show HN: I built self-hosted deployment automation tool for Windows and IIS

https://fdeploy.com/
4•dt3ft•14h ago•0 comments

Tracking Costco gas prices

https://www.jack.bio/blog/costco-gas-tracking
54•lafond•1d ago•54 comments

Visualizing Binary Files

https://movq.de/blog/postings/2026-08-05/0/POSTING-en.html
62•zdw•1d ago•14 comments

Behaviorally fingerprinting Ox Alpha's provenance

https://www.ctgt.ai/research/behaviorally-fingerprinting-ox-alphas-provenance
20•cgorlla•7h ago•13 comments

A new ceiling for Λ: the de Bruijn–Newman constant

https://www.judegomila.com/posts/riemann-lambda-0.1787854
44•judegomila•5h ago•18 comments
Open in hackernews

When str.lower() is a security vulnerability in Python – Seth Larson

https://sethmlarson.dev/when-str-lower-is-a-security-vulnerability
26•rbanffy•1h ago

Comments

echoangle•43m ago
> This is why calling str.lower() represents a difference in the implementation and the specification, and therefore a vulnerability:

I wish there was some explanation how this is a vulnerability and not just a bug generating erroneous data.

Vulnerability for me sounds like there’s a reasonable way to create an exploit from the bug, and I don’t see one here as someone who’s not very familiar with the topic.

SethMLarson•38m ago
Author here, that's a good idea. A straightforward way to exploit an implementation differential like this is if you have a software system that contains two different implementations of IDNA 2003 processing user input. One part of the process processes the domain correctly, the other incorrectly, and in this case you can have one part of a system (such as a policy/filter) "see" the data one way and the other part of the system (such as, taking an action as a result of the data) see the data in another way.

Server-side Request Forgery (SSRF) is an example of such an exploit targeting a differential in implementations of URL parsers, which is similar to this implementation difference.

AgentOrange1234•20m ago
"if you have a software system that contains two different implementations of IDNA 2003 processing user input"

Is that a real thing though? Is someone doing that?

gchamonlive•16m ago
It isn't until it is, until during a crunch someone adds a package with that condition and eventually that gets exploited or halts the system. It's never a nitpick to shed your system from undesired state because of how complex systems behave.
kccqzy•15m ago
It could be an implementation written in the buggy Python and another written in a different language.

For example you might use a ready-made WAF written in a non-Python language in front of a Python app.

tptacek•37m ago
It creates a parser differential; two different components of the system can treat the same string as different hostnames. Things that have trusted hostnames, or privileged/admin hostnames that are screened out, or SSRF filters all depend on accurately comparing presented hostnames.

This is pretty situational, though, isn't it? You still have to be dealing with IDN names.

tialaramex•7m ago
It is situational, but it very much seems like a thing you'd squirrel away and bring out when you find a system where the differential is helpful.

DNS names are a thing where Sales is going to tell the Engineer that they can't issue the customers randomized ASCII names like abxuewrf.my-thing.example because real customers want to write our-brand-name.my-thing.example instead - even though you already know bad guys will choose billing.my-thing.example and name-of-bank.my-thing.example and every other unintended bad choice even before we realise about likelihood of these confusion bugs in software like Python.

zaphar•36m ago
I'm too lazy to investigate further but my guess is that if there is a vulnerability here it has something to do with dns name spoofing.
floxy•26m ago
I suppose I could envision a scenario like: Service A has a "reset your password" option. Someone with a "user@popular-unicode-domain.com" tries to use this option. Normally this fails when mangled-popular-unicode-domain-plus-garbage.com can't be found. Enterprising malicious actor registers mangled-popular-unicode-domain-plus-garbage.com, and now gets a hold of user password reset requests.
cat-whisperer•34m ago
the horrors of versioning
tialaramex•22m ago
This idiocy is a big part of why it was so important to get Python people working on TLS implementations to understand that the defined mechanism for SANs (no the "alternative" in Subject Alternative Name doesn't mean in the sense of more than one, X.509 is originally for the X.500 system and the Internet repurposed X.509 so these are alternative names from the Internet) says that these are DNS names, they specifically are not to be understood as some sort of human readable text, and thus "decoding" them to Unicode is definitely nonsense even though Python really wanted to do that and I think used to do it or at least proposed to.

The rule for how SAN DnsNames match againt like names, from the DNS is very, very simple so that you don't screw it up. You handle a single wildcard (ASCII * code 42 matches any single DNS label) and beyond that it's literally byte comparison. You don't care what these bytes mean, either the bytes are all identical or that's not a match and we're done.

tescreal•18m ago
it would be good to look for ".lower()" squatters if you host on an idn.