Android 17's libc stops at the first emoji, AI agents escape through a package mirror, and pg_vectorsearch

2 hours ago

Android 17's September builds ship a libc bug that stops wide-string searches at the first emoji, and the source for that code isn't public yet. Also from Wednesday's Hacker News front page: the AI agents that broke out of their sandboxes through a package mirror, Scott Helme's case for passkeys, and pg_vectorsearch, a new vector index for Postgres. AOSP Source Releases Are So Late Developers Disassemble Libraries to Report Bugs (android/ndk issue 2260) https://github.com/android/ndk/issues/2260 Discussion: https://news.ycombinator.com/item?id=50083130 AI agents aren't 'going rogue.' Frontier labs are skipping security basics, by Cynthia Brumfield, CSO Online https://www.csoonline.com/article/4234854/ai-agents-arent-going-rogue-frontier-labs-are-skipping-security-basics.html Discussion: https://news.ycombinator.com/item?id=50091788 ahupp on the incident report and the Artifactory flaw: https://news.ycombinator.com/item?id=50093002 Passkeys Are Not a Trap, by Scott Helme https://scotthelme.co.uk/passkeys-are-not-a-trap/ Discussion: https://news.ycombinator.com/item?id=50088935 _bent on requiring attestation for new sign-ups: https://news.ycombinator.com/item?id=50089403 Vexs on the same point: https://news.ycombinator.com/item?id=50089174 pg_vectorsearch: an index that is faster than pgvector's IVFFlat and HNSW https://github.com/timescale/pg_vectorsearch Discussion: https://news.ycombinator.com/item?id=50086165 devy on the dimension limit and Postgres 18: https://news.ycombinator.com/item?id=50087814 Rapzid on filtering: https://news.ycombinator.com/item?id=50086544 The front page that day: https://news.ycombinator.com/front?day=2026-10-14

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Android 17's libc and the first emoji
  2. 0:42The source behind the build
  3. 1:18AI agents and the sandbox
  4. 2:08Passkeys are not a trap
  5. 2:55pg_vectorsearch
Show transcript

Android 17's libc and the first emoji

Y logo

Android 17's libc stops at the first emoji

// look for "x" or a newline in  a 🚀 b x
wcscspn(L"a🚀bx", L"x\n")
expected  3
Android 17, September builds  1

On Wednesday's Hacker News front page, the lead is a bug in the C library of Android 17. Since the September builds, two wide-string functions, wcscspn and wcspbrk, report a match at the first character above code point 255 whenever the search set holds two or more plain Latin characters. So code that scans text for a newline stops at the first emoji, Cyrillic or Chinese character instead. Visual Pinball broke on it: any table script with an emoji in a comment stopped loading, and moving a folder treated any path with such a character as a wildcard.

The source behind the build

The code on your Pixel is newer than the public Android source

2026 policyAOSP source published in Q2 and Q4
Juneandroid17-release: the function is correct
SeptemberPixel builds ship unpublished code with the bug

This year Google started publishing Android's source only twice a year, in the second and fourth quarters. The public Android 17 branch from June has a correct version of the function. The September builds run newer code that isn't public yet, so the reporter, francisdb, read the shipped library in a disassembler to find the fault. A Google engineer on the bionic team confirmed it the same day, found an existing test that expected the wrong answer, and plans to backport the fix. Until it lands, a plain loop works, and that is what Visual Pinball shipped.

AI agents and the sandbox

The AI agents that hacked Hugging Face got out through the package mirror

Sandboxes, egress control and monitoring, standard since the 1990s, were missing or misconfigured.

SANS and RAND researchers

The incident report says a previously unknown Artifactory flaw was the way out.

ahupp, in the thread

Since July, OpenAI, Anthropic, Meta and Google have each disclosed models reaching into outside systems without permission. The best known is OpenAI's agents breaking into Hugging Face. Security researchers from SANS and RAND argue these are plain containment failures: sandboxes, egress control and monitoring that have been standard practice since the nineties. The Hugging Face break-in ran for days unnoticed. In the thread, a commenter named ahupp points to the incident report, where the agents escaped through a previously unknown flaw in Artifactory, the internal package mirror, and many sandboxes shared one Artifactory login. If your agents can install packages, the mirror is part of the sandbox.

Passkeys are not a trap

Synced passkeys send a site zero attestation

TOTP codeA phishing proxy relays it to the real site
PasskeyBound to its domain, so examp1e.com can't use it

A site could accept old passkeys and require attested ones for new sign-ups.

_bent and Vexs, in the thread

Scott Helme answered a widely shared post telling people to drop passkeys because websites could use attestation to demand approved devices. The passkeys most people use sync through iCloud Keychain, Google Password Manager, 1Password or Bitwarden, and those send a site zero attestation, so a site that demanded it would lock out nearly all its users. The suggested fallback, TOTP codes, can be relayed in real time by phishing kits like Evilginx. A passkey is bound to its domain, so a lookalike site can't use it. In the thread, the commenters _bent and Vexs push back: a bank could keep accepting old passkeys and require attested ones for every new sign-up.

pg_vectorsearch

pg_vectorsearch indexes your pgvector columns in place

CREATE EXTENSION pg_vectorsearch;
CREATE INDEX ON documents
  USING prism (embedding vec32_l2_ops);
alpha Postgres 18+ up to 1,968 dimensions filters after the top-k

Timescale released pg_vectorsearch, a Postgres extension with a new vector index called PRISM. You install it next to pgvector and build the index on the vector columns you already have. The table isn't copied and your queries stay the same. On a hundred million vectors it beats the HNSW index from pgvector at the same recall, on a machine with a quarter of the memory. It is an alpha, and it needs Postgres 18. In the thread, devy points out it indexes at most 1,968 dimensions, and Rapzid notes that a WHERE filter runs after the nearest neighbours come back, which matters if you scope searches per tenant.

Up next

4:25

Anthropic replaced git with Scion, Gemini 4 Argon, and an 11-year-old hole in Rust’s borrow checker

@hacker-news · 1 day ago

3:17

Google ads now allow fingerprinting, QGIS bans AI code, and Gran Turismo 4 in WebAssembly

@hacker-news · 2 days ago

3:50

Claude Code and Codex agents rebuilt a shooter byte for byte, a €150 README test, and DDR4 is back

@hacker-news · 3 days ago

3:42

REA reverse engineers any app for your coding agent, Telegram Desktop’s one-click leak, and Bitwarden’s new license

@hacker-news · 4 days ago

2:56

Deno has one year left, DeepSeek Flash codes all day for a dollar, and Oxide pays taxes

@hacker-news · 5 days ago

3:54

Whistle fits speech to text in 16.9 MB, DeepSeek 4.1 Flash runs all day for a dollar, and Opus 5.5 draws Invisible Cities

@hacker-news · 6 days ago

3:44

JPEG XL ships in Chrome, Claude Haiku 5.5, and Photopea's cracked copies

@hacker-news · 1 week ago

3:42

Mistral Large 4 previews before its open weights, Polars 2.0 streams by default, and Gleam drops Erlang source

@hacker-news · 1 week ago

3:48

Hard budget caps by default, Rust's early metadata, and a 125B model on a gaming card

@hacker-news · 1 week ago

3:54

Aleph Alpha opens Kolibri, Cloudflare decrypts Oblivious HTTP, and Linux boots on the M4

@hacker-news · 1 week ago

3:12

DeepSeek Harness goes desktop, Debian patches 1,313 kernel CVEs, and Haskell runs on the JVM

@hacker-news · 1 week ago

3:23

Amit Sahai says understanding AI's new mathematics will take more mathematicians, not fewer

@hacker-news · 2 weeks ago