hyjorc1
JSC security specialist
Summary
hyjorc1 works almost entirely inside JSC, with the heaviest concentration in the Wasm subsystem and secondary lines in Temporal/Intl calendar internals, FastStringifier buffer handling, and occasional backend work (Mul(Neg(n), m) → MNEG/FNMUL); the one flagged security fix sits elsewhere, pinning upstream checks that DFG integer-range-optimization proofs depend on. The recent stream is a sustained build-out of the WASM debugger and its debug server, and the bugs being fixed are validation and state-machine bugs rather than feature work: module lifetime leaks when the debugger is enabled, breakpoints accepted at non-instruction boundaries, decisions made on the patched byte instead of the pre-patch opcode, malformed packets silently defaulted rather than rejected, and a self-deadlock on an unknown thread id. Systematic-variant candidate: the WASM debug server's packet parsing and the breakpoint patch/unpatch bookkeeping — a young surface that takes untrusted input, where several distinct classes of missing-validation bug landed in close succession, which usually means the sweep isn't finished.
Components
Security Fix History
- 2026-08-24 [JSC] Pin upstream checks that DFG IRO range proofs rely on ·
- 2026-06-11 [JSC] Fix incorrect handling of unwritten slots in operationPopulateObjectInOSR for PhantomNewArrayWithButterfly · CVE-2026-28905
- 2026-05-27 [JSC] ExpressionInfo::Encoder::adjustInstPC should take an index instead of a pointer 2026-W21
- 2026-05-26 [JSC] Fix GC safety for sunk contiguous array materialization in FTL 2026-W21
- 2026-05-21 [JSC] Remove unneeded m_tasks append in DeferredWorkTimer::cancelPendingWorkSafe 2026-W20
- 2026-05-07 [JSC][WASM][Debugger] Fix STW deadlocks when VM blocks in memory.atomic.wait or WebCore operations 2026-W18
- 2026-03-31 REGRESSION(309965@main?): JSC-Tests-O3-Debug-arm64 intermittently hitting buildbot step timeout (testwasmdebugger hang?)
- 2026-03-13 [JSC] Add ArrayIsArray intrinsic for Array.isArray
- 2026-03-07 [JSC] MapIterationEntryKey should have NodeResultJS, not NodeResultInt32
- 2026-01-30 [JSC][WASM][Debugger] Fix race condition causing debugger connection failures in JSC shell
Hardening Commits
Recent Commits
- 2026-09-18 [JSC] WASM debugger: report an interrupt at a wasm prologue as a real stop
- 2026-09-17 [JSC] WASM debugger tests: fix a prologue-attach flake and a silent JSC exit
- 2026-09-17 [JSC] WASM debugger: simplify one-time breakpoint bookkeeping
- 2026-09-16 [JSC] Reject a WASM breakpoint that isn't at an instruction boundary
- 2026-09-16 [JSC] WASM debugger: unencodable instance-id sentinel, clearer predicate names, and a loud failure when the server canno
- 2026-09-15 [JSC] Don't leak every WASM module when the debugger is enabled
- 2026-09-15 [JSC] Decide on the pre-patch opcode, not the patched byte, in the WASM debugger
- 2026-09-15 [JSC] Reject malformed packets in the WASM debug server instead of defaulting them
- 2026-09-14 [JSC] Don't self-deadlock the WASM debug server on an unknown thread id
- 2026-09-14 [JSC] Fix flaky WASM debugger tests under parallel runs
- 2026-09-10 [JSC] Lower Mul(Neg(n), m) to MNEG/FNMUL
- 2026-08-24 [JSC] Pin upstream checks that DFG IRO range proofs rely on ·
- 2026-08-19 [JSC] Remove prints in stress tests
- 2026-08-14 [JSC][Intl] Compute the "Before Hijra" year from the calendar, not ICU's rendered text
- 2026-08-14 [JSC][Temporal] Delete constrainMonthCodeInternal and inline constrainMonthCodeGivenContainment