mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
a308b64a7f
christophwille/closedhierarchies
christophwille/contributing
christophwille/decompilerdocs
christophwille/membench
claude/ilspy-pr-3839-review-uo8q7r
collection-expression-tests
copilot/add-field-keyword-auto-properties
deconstruction-fixes
fix-3475-anonymous-type-null
fix-3860-outvar-explicit-type
fix/3465
fix/3518
gh-pages
issue1638
master
natural-type-lambdas-methods
null-coalescing-assignment
release/10.1
release/6.2
release/7.1
release/7.2
release/8.1
stash/beautify-enum-member-declarations
stash/dynamic-await
1.0-Beta
1.0-M1
1.0-M2
1.0-M3
1.0.0
2.0.0
2.1
2.2
2.3
2.3.1
3.0-Preview1
3.0-Preview2
3.0.2
v10.0
v10.0-preview1
v10.0-preview2
v10.0-preview3
v10.0.1
v10.1
v2.3.2
v2.4
v3.0
v3.0-beta1
v3.0-beta2
v3.0-beta2a
v3.0-beta3
v3.0-beta4
v3.0.1
v3.1-beta1
v3.1-final
v3.1-rc
v3.2-beta
v3.2-rc
v3.2.0
v4.0
v4.0-alpha1
v4.0-beta1
v4.0-beta2
v4.0-beta3
v4.0-rc1
v4.0-rc2
v4.0.1
v5.0
v5.0-preview1
v5.0-preview2
v5.0-preview3
v5.0-preview4
v5.0-rc1
v5.0.1
v5.0.2
v6.0
v6.0-preview1
v6.0-preview2
v6.0-preview3
v6.0-preview4
v6.0-rc1
v6.1
v6.2
v6.2-preview1
v6.2-preview2
v6.2.1
v7.0
v7.0-preview1
v7.0-preview2
v7.0-preview3
v7.0-rc1
v7.0-rc2
v7.1
v7.2
v7.2-preview1
v7.2-preview2
v7.2-preview3
v7.2-preview4
v7.2-rc
v7.2.1
v8.0
v8.0-preview1
v8.0-preview2
v8.0-preview3
v8.0-preview4
v8.0-rc1
v8.1
v8.1.1
v8.2
v9.0
v9.0-preview1
v9.0-preview2
v9.0-preview3
v9.0-rc
v9.1
${ noResults }
2 Commits (a308b64a7fa8829db5e21d409762c750fb881b0a)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
3d6a529e58 |
Bound WebCilFile section access against mapped-view length
WebCilFile builds raw native pointers into the memory-mapped view directly from section-header fields read out of attacker-controlled metadata. Unlike PEFile.GetSectionData, which delegates to the bounds-checked PEReader, this hand-rolled path validated nothing: a crafted section header could produce a SectionData (and hence a BlobReader) pointing far outside the view, an out-of-bounds read reachable on normal decompilation through method-body and field-data RVA resolution. The (int)RawDataSize narrowing cast could also yield a negative length. Resolve and bounds-check the raw-data range against the view length before constructing SectionData, widening the arithmetic to long so crafted uint fields cannot wrap the range check or narrow into an apparently valid length. Structural parsing in FromFile now reports a crafted or truncated module as "not a WebCIL file" (null) rather than letting EndOfStreamException, OverflowException or BadImageFormatException escape the loader. Assisted-by: Claude:claude-opus-4-8:Claude Code |
2 days ago |
|
|
f6b31448db |
Add test cases
|
4 months ago |