Skip to content

fuzz: new parser findings 2026-07-01 - #1260

Merged
keithamus merged 2 commits into
mainfrom
fuzz/findings-20260701-032120
Jul 3, 2026
Merged

fuzz: new parser findings 2026-07-01#1260
keithamus merged 2 commits into
mainfrom
fuzz/findings-20260701-032120

Conversation

@keithamus

@keithamus keithamus commented Jul 1, 2026

Copy link
Copy Markdown
Member

Nightly fuzz run found new findings.

Parser::consume_trivia scans the lookahead buffer, but when the entire buffer all in the skip set, it can exhaust the buffer without updating buffer_index or refilling, subsequently looping and OOMing.

This fix resets the buffer to all EOFs if consumed, ensuring that subsequent lookups into the buffer know that it has been exhausted.

GHA run: https://github.com/csskit/csskit/actions/runs/28490447141

Findings

minimized-from-ba7506c5d6682c465b68239f3ce582bcf152172b (38 bytes)

00000000: 7b07 0000 007b 7b00 0029 2929 2929 2929  {....{{..)))))))
00000010: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000020: 2929 2929 2929                           ))))))
{^G^@^@^@{{^@^@)))))))))))))))))))))))))))))

minimized-from-d8d23358f3dc2ba8210a3d8aafc5da1de4f23980 (52 bytes)

00000000: 257b 0700 0000 7b7b 0000 2929 2929 2929  %{....{{..))))))
00000010: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000020: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000030: 2929 2929                                ))))
%{^G^@^@^@{{^@^@))))))))))))))))))))))))))))))))))))))))))

minimized-from-9e14e98733a15bd092804391fa0ab1b74ecf8d20 (46 bytes)

00000000: 257b 0700 0000 7b7b 0000 2929 2929 2929  %{....{{..))))))
00000010: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000020: 2929 2929 2929 2929 2929 2929 2929       ))))))))))))))
%{^G^@^@^@{{^@^@))))))))))))))))))))))))))))))))))))

minimized-from-0769a082d08ed07208aee88de599f85c6758d1ce (15 bytes)

00000000: 7b0d 2929 2929 2929 2929 2929 2929 29    {.)))))))))))))
{^M)))))))))))))

minimized-from-5b182c8a02b1e9d5b18611185df5a6bfe58283c9 (89 bytes)

00000000: 257b 0700 0000 7b7b 2929 2929 2929 2929  %{....{{))))))))
00000010: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000020: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000030: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000040: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000050: 2929 2929 2929 2929 29                   )))))))))
%{^G^@^@^@{{)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

minimized-from-6d7604100891f84f0b55866f99cd8ab952db2515 (44 bytes)

00000000: 257b 0700 0000 7b7b 0000 2929 2929 2929  %{....{{..))))))
00000010: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000020: 2929 2929 2929 2929 2929 2929            ))))))))))))
%{^G^@^@^@{{^@^@))))))))))))))))))))))))))))))))))

minimized-from-5295f21a5922b5f3ebd276f532e53317295540f1 (13 bytes)

00000000: 7b29 2929 2929 2929 2929 2929 29         {))))))))))))
{))))))))))))

minimized-from-caa7fafedd1258d75df85347b57990517546490e (43 bytes)

00000000: 7b07 0000 007b 7b00 0029 2929 2929 2929  {....{{..)))))))
00000010: 2929 2929 2929 2929 2929 2929 2929 2929  ))))))))))))))))
00000020: 2929 2929 2929 2929 2929 29              )))))))))))
{^G^@^@^@{{^@^@))))))))))))))))))))))))))))))))))

minimized-from-0cacc3195f100bdbfbd5c94a2b94d3ec4da637ae (23 bytes)

00000000: 7b07 0000 007b 7b00 0029 2929 2929 2929  {....{{..)))))))
00000010: 2929 2929 2929 29                        )))))))
{^G^@^@^@{{^@^@))))))))))))))

minimized-from-5a2e49f57cbcfb8ffa4429e2ddd2425a8bbede58 (14 bytes)

00000000: 7b29 2929 2929 2929 2929 2929 2929       {)))))))))))))
{)))))))))))))

minimized-from-2ab7961042363648ba89f68b4d1c4e216133e05c (18 bytes)

00000000: 7b01 0000 0d29 2929 2929 2929 2929 2929  {....)))))))))))
00000010: 2929                                     ))
{^A^@^@^M)))))))))))))

minimized-from-4f6d9620470a8f6901b9c35be383e0b2e70042fb (20 bytes)

00000000: 7b07 0001 0000 0d29 2929 2929 2929 2929  {......)))))))))
00000010: 2929 2929                                ))))
{^G^@^A^@^@^M)))))))))))))

@keithamus
keithamus enabled auto-merge (squash) July 3, 2026 18:16
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

✅ CI passed

Job Result
Build & Test (win32-x64, win32-arm64, linux-x64, linux-arm64, darwin-x64, darwin-arm64) ✅ success
Build & Test (default features) ✅ success
Build & Test (nightly) ✅ success
Build each library ✅ success
Build benches ✅ success
Acceptance Tests ✅ success
Fuzz Corpus Replay ✅ success

@keithamus
keithamus merged commit 32e4de9 into main Jul 3, 2026
19 checks passed
@keithamus
keithamus deleted the fuzz/findings-20260701-032120 branch July 3, 2026 18:21
github-actions Bot pushed a commit that referenced this pull request Jul 3, 2026
## [0.0.27] - 2026-07-03

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))

[forcebuild]
@keithamus keithamus mentioned this pull request Jul 3, 2026
github-actions Bot pushed a commit that referenced this pull request Jul 3, 2026
## [0.0.27] - 2026-07-03

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))
github-actions Bot pushed a commit that referenced this pull request Jul 3, 2026
## [0.0.27] - 2026-07-03

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Jul 3, 2026
## [0.0.27] - 2026-07-03

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))
github-actions Bot pushed a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262) ([#1262](#1262))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262) ([#1262](#1262))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))
github-actions Bot pushed a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262) ([#1262](#1262))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_derives
- chore(deps): update rust crate itertools to 0.15.0 (#1246) ([#1246](#1246))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262) ([#1262](#1262))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_derives
- chore(deps): update rust crate itertools to 0.15.0 (#1246) ([#1246](#1246))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))
github-actions Bot pushed a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262) ([#1262](#1262))
- Implement "VisitFlow" (#1263) ([#1263](#1263))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_derives
- chore(deps): update rust crate itertools to 0.15.0 (#1246) ([#1246](#1246))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257) ([#1257](#1257))
- CI: Ensure benches build (#1259) ([#1259](#1259))

### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238) ([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242) ([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254) ([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232) ([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261) ([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262) ([#1262](#1262))
- Implement "VisitFlow" (#1263) ([#1263](#1263))

### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260) ([#1260](#1260))

### Csskit
- chore(deps): update dependencies (patch) (#1243) ([#1243](#1243))

### Csskit_derives
- chore(deps): update rust crate itertools to 0.15.0 (#1246) ([#1246](#1246))

### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247) ([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255) ([#1255](#1255))
keithamus added a commit that referenced this pull request Jul 4, 2026
## [0.0.27] - 2026-07-04

### Other Changes
- Fuzz: minimize corpus, and do so on nightly fuzz build (#1257)
([#1257](#1257))
- CI: Ensure benches build (#1259)
([#1259](#1259))


### Css_ast
- css_ast/css_parse: Improve peeking robustness. (#1238)
([#1238](#1238))
- Regenerate css_ast/src/values from csswg drafts (#1242)
([#1242](#1242))
- Regenerate css_ast/src/values from csswg drafts (#1254)
([#1254](#1254))
- fuzz: new parser findings 2026-06-19 (#1232)
([#1232](#1232))
- css_ast: Refactor assert_specificity to use closure pattern (#1261)
([#1261](#1261))
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass (#1262)
([#1262](#1262))
- Implement "VisitFlow" (#1263)
([#1263](#1263))


### Css_parse
- fuzz: new parser findings 2026-07-01 (#1260)
([#1260](#1260))


### Csskit
- chore(deps): update dependencies (patch) (#1243)
([#1243](#1243))


### Csskit_derives
- chore(deps): update rust crate itertools to 0.15.0 (#1246)
([#1246](#1246))


### Csskit_vscode
- chore(deps): update dependencies to v1.68.0 (#1247)
([#1247](#1247))
- fix(deps): update dependencies (patch) (#1255)
([#1255](#1255))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant