tls-1.2 - TLS 1.2 client and server support for 9legacy:
ECDHE (X25519 both sides; secp256r1 and secp384r1 on the
client), AEAD ciphers (AES-128-GCM, ChaCha20-Poly1305), SNI,
server-side ECDHE-RSA, X.509 chain + hostname + validity +
RFC 5280 Section 4.2 (basicConstraints, keyUsage,
extKeyUsage, nameConstraints) verification on by default via
/sys/lib/tls/ca.pem, RFC 5746 renegotiation_info server echo,
RFC 7627 extended_master_secret, per-vhost SNI cert routing
in ip/httpd, TLS 1.0 and 1.1 refused per RFC 8996. Scalar
multiplication selects each ladder step without branching on
the scalar. Session keys are zeroized at close, the record
sequence number is 64 bits so the AEAD nonce cannot repeat,
handshake messages are bounds-checked in both directions, and
the ASN.1 decoder limits its own recursion.
abaco-html4 - usability fixes for the 9legacy abaco(1) browser:
NOTES bug fixes (text selection, double-click), html(2) field
wiring, UTF-8 default charset, webfs cookie support,
failure-path error prefix, relative-BASE-href crash guard.
webfs-readline-overflow - fix a dormant Ibuf pointer-reset bug in
/sys/src/cmd/webfs/buf.c readline(); affects any webfs consumer driving
sustained parallel reads (observed in abaco loading modern HTTPS pages).
hget-readline-overflow - the same bug in the copy of that function in
/sys/src/cmd/hget.c: readline() never rewinds rp/wp when the 4 KB
input buffer drains, so the next read deposits response data past the
end of it. hget places the pointers before the buffer rather than
after, so the overrun leaves the struct entirely and corrupts
unrelated static data instead of faulting in readline. Needs only a
response whose headers and body cycle the buffer past 4096 bytes.
mothra-fixups - character-set detection in mothra(1), the browser from
/sources/extra (not part of 9legacy; fetch it there first).
plrdhtml compared the http-equiv attribute with strcmp, so the usual
spelling Content-Type never matched and the page rendered as
Latin-1, and it never read <meta charset=...> at all, which is the
form most pages use now. Both forms are read, case-insensitively.
Also returns a value from pl_boxsize, which could fall off the end
of a function declared to return a Point.
libregexp-listsize-bump - bump LISTSIZE 10 -> 12 in libregexp/regcomp.h to
dodge an off-by-one in rregexec's thread-list overflow detection; the
OOB byte write corrupts heap memory adjacent to the regex engine's
stack. Affects any libregexp consumer with a large enough regex.
ndb-dns-empty-noerror - fix Plan 9 ndb/dns to return NOERROR (RCODE
0) for unsupported RR types instead of the non-RFC NOTIMP
response, with SOA in authority section when authoritative.
Required by modern public CAs (CAA gate per RFC 8659) for any
Plan 9 host running authoritative DNS for its own zone.
kaffe - restored Kaffe 0.9.2 Java 1.1.3 VM for 9legacy/386:
interpreter, JIT, native services, JNI 1.1 and kaffeh.
|