Skip to content

MacSurf

v1.2 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 6d Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

bearssl carbon-api classic-mac codewarrior css3 duktape
+9 more
javascript mac-os-9 macintosh netsurf open-transport powerpc quickdraw retro-computing web-browser

Affected surfaces

crypto_tls

ReleasePort's take

Moderate signal
editorial:auto 5d

macTLS v1.0 upgrades its entropy source from a weak XOR implementation to a SHA-256 HMAC‑DRBG that incorporates hardware jitter, mouse/keyboard timing, and a persisted seed file.

Why it matters: The change raises the security posture of macTLS by eliminating an insecure XOR entropy source; operators using macEntropy v1.0 should adopt this release immediately due to its severity score of 95.

Summary

AI summary

Updates Issues closed since 1.0, Three pieces in scope, and Full notes docs/release-notes/MacSurf-1.2.md across a mixed release.

Changes in this release

Security Critical

Replaces insecure XOR entropy source with SHA-256 HMAC-DRBG using hardware jitter, mouse/keyboard timing, and persisted seed file.

Replaces insecure XOR entropy source with SHA-256 HMAC-DRBG using hardware jitter, mouse/keyboard timing, and persisted seed file.

Source: llm_adapter@2026-05-29

Confidence: high

Feature Low

Implements full download manager with save dialog, streaming write, MIME mapping, and error cleanup.

Implements full download manager with save dialog, streaming write, MIME mapping, and error cleanup.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Medium

Wires POST form body through both HTTP and HTTPS, fixing no‑op behavior for all forms.

Wires POST form body through both HTTP and HTTPS, fixing no‑op behavior for all forms.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Medium

Routes Content‑Disposition: attachment responses to the download manager instead of rendering as HTML.

Routes Content‑Disposition: attachment responses to the download manager instead of rendering as HTML.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Low

Fixes CSS background‑attachment fixed to anchor correctly to viewport coordinates.

Fixes CSS background‑attachment fixed to anchor correctly to viewport coordinates.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Low

Corrects `white-space: pre-line` to collapse internal whitespace runs properly.

Corrects `white-space: pre-line` to collapse internal whitespace runs properly.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Low

Resolves SVG `fill-opacity` and `stroke-opacity` rendering issues.

Resolves SVG `fill-opacity` and `stroke-opacity` rendering issues.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Low

Prevents HTTPS abort plus auto‑upgrade fallback crash on DuckDuckGo searches.

Prevents HTTPS abort plus auto‑upgrade fallback crash on DuckDuckGo searches.

Source: llm_adapter@2026-05-29

Confidence: high

Full changelog

Released: 2026-05-29
Verified on: Power Macintosh G3 iMac, Mac OS 9.1
Engine HEAD: fixes315

The headline

macTLS v0.x ran on a documented insecure-stub entropy source. It was the largest known security limitation in 1.0 — the rotate-XOR placeholder lifted from BearSSL's reference scaffolding, sitting in the spot where a real CSPRNG belongs. 1.2 closes that hole. macTLS v1.0 (macEntropy v1.0) replaces it with a SHA-256 accumulator feeding BearSSL's HMAC-DRBG, fed by OT packet-arrival jitter, mouse and key-press timing from the event loop, high-resolution clock samples, and a cold-start seed file persisted across boots.

This is what "production HTTPS" was supposed to mean. 1.0 was the chrome polish release; 1.2 is the security release.

Three pieces in scope

  1. macTLS v1.0 (macEntropy v1.0) — hardware-validated on G3 across four separate launches with the Stage E statistical self-test: distinct seed fingerprints per run (94A7251B, 52AB2050, 665DF442, 165814CB), the actual per-run-entropy proof. The pre-1.2 binary was using a rotating XOR seeded only from TickCount(); every TLS handshake on that build shared a predictable seed line. Replaced.
  2. POST forms work. Through 1.0 both fetcher API setup functions silently discarded post_urlenc at entry ((void)pu;). Every form POST became a no-op — search forms on results pages, login forms, comment submissions. 1.2 wires the body through; DDG's "search again from the results page" (the canonical #144 repro) now returns fresh results.
  3. A working download manager. Through 1.0 clicking a download link either did nothing visible or rendered the binary as HTML. 1.2 implements all four gui_download_table callbacks: NavPutFile save dialog, FSWrite streaming, MIME-mapped Mac type/creator codes, partial-file cleanup on error, and Content-Disposition: attachment detection in the fetcher so Drupal-style sites (mactrove, macintoshgarden) route through download instead of render.

Issues closed since 1.0

  • #41background-attachment: fixed anchors to viewport in window coords (fixes309)
  • #56white-space: pre-line collapses internal whitespace runs (fixes307)
  • #36 — SVG fill-opacity / stroke-opacity (fixes305 + 305a)
  • #143<img> HTML width/height verified not reproducing (closed during the lead-in)
  • #144 — POST form body wired through both HTTP and HTTPS (fixes312)
  • #149 — Content-Disposition: attachment routes to download (fixes313b)
  • #150 — HTTPS abort + auto-upgrade FALLBACK crash on DDG (fixes315)

Plus the macTLS chain: macEntropy Stages A → C → B → E → v1.0 → D, tracked in the macTLS repo and tagged macentropy-v1.0.

Full notes

docs/release-notes/MacSurf-1.2.md

Building

Same as 1.0. Clone the repo, open browser/netsurf/frontends/macos9/MacSurf.mcp in CodeWarrior 8 Pro (8.3 update) on the Mac side, choose Build. One project-file note for builders pulling 1.2 onto a 1.0 workspace: desktop/download.c needs to be in MacSurf.mcp (introduced as part of fixes313, provides download_context_create and the four download_context_get_* accessors).

Security Fixes

  • macTLS v1.0 (macEntropy v1.0) replaces insecure rotating‑XOR placeholder with SHA-256 HMAC‑DRBG fed by hardware jitter, mouse/keyboard timing, high‑resolution clock samples, and persisted seed file.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track MacSurf

Get notified when new releases ship.

Sign up free

About MacSurf

All releases →

Beta — feedback welcome: [email protected]