Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2022-34169 PoC — Apache Xalan 输入验证错误漏洞

Source
Associated Vulnerability
Title:Apache Xalan 输入验证错误漏洞 (CVE-2022-34169)
Description:Apache Xalan是美国阿帕奇(Apache)基金会的开源软件库。 Apache Xalan Java XSLT库存在输入验证错误漏洞,该漏洞源于在处理恶意的XSLT样式表时,存在整数截断问题。这可以用来破坏由内部XSLTC编译器生成的Java类文件并执行任意的Java字节码。
Description
https://nvd.nist.gov/vuln/detail/CVE-2022-34169
Readme
# Description

Checks if CVE-2022-34169 is fixed on your machine. As far as I know, an exploit was found by a Google employee and not published. Since the fix is known, a small test routine was written with this to check whether the fix is available at runtime.

# Build yourself (optional)

Optional: This is only available, if you have JDK:

```
# Optional: To see if `javac` is available: `sudo updatedb && sudo locate /bin/javac`
javac Bcel.java
```

The six warnings can be ignored. The code that is flagged is used to include the Bcel library that is available in OpenJDK. If one were to include the Bcel library oneself, it would be a bit more complicated and the version would be predefined - which is not necessarily in the spirit of this exercise.

# Run

```
# `cd` into (built) folder where `Bcel.class` is, then:
java Bcel
```

# Check output


```
echo $?
```

Don't get confused with the error codes. They are the other way round. The Fix https://github.com/openjdk/jdk/commit/41ef2b249073450172e11163a4d05762364b1297?diff=unified#diff-3d2cb29a8f3fca8e2f3421d2898dce63255b850406456533cce91f26dbf8dbe2R217 throws an error with error code 1 and thus catches the security risk. If the fix is not present, the source code runs through without error with error code 0 - but too many elements are created in the object!

* Error code 1 is good! :)
* Error code 0 is bad! :(

# Results

* OpenJDK 1.8.0_72 - Bad :(
* Oracle 1.8.0_131 - Bad :(
* Oracle 1.8.0_202 - Bad :(
* Oracle 1.8.0_212 - Bad :(
* Oracle 1.8.0_341 - Good :)
* OpenJDK 1.8.0_342 - Good :)

File Snapshot

[4.0K] /data/pocs/1b668d115075f1fb7a7b016136a4d3e21263ae0b ├── [1.4K] Bcel.java ├── [4.0K] built_with_openjdk_1.8.0_342 │   └── [1.5K] Bcel.class ├── [4.0K] built_with_oracle_1.8.0_333 │   └── [1.5K] Bcel.class ├── [4.0K] built_with_oracle_1.8.0_341 │   └── [1.5K] Bcel.class └── [1.5K] README.md 3 directories, 5 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.