Commit 148de7d
fix(eventstream): reject events with invalid UTF-8 topic (PILOT-277)
ReadEvent now validates topic bytes with utf8.Valid() before casting to string.
Without this check, an attacker can craft a topic with invalid UTF-8 that
survives transport unchanged but gets silently mangled by json.Marshal
(replacing invalid sequences with U+FFFD). This can be exploited to escape
audit redaction (PILOT-284) — the wire-observed bytes differ from the
JSON-logged value, yet both map to the same Go map key.
Closes PILOT-277 (eventstream half)1 parent 2eaf1f5 commit 148de7d
2 files changed
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
61 | 66 | | |
62 | 67 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
0 commit comments