Skip to content
NvidiaGHSA-rgvh-j93q-rw6f

Bundled CloudXR libPoco.so statically links libexpat 2.8.1 (CVE-2026-56132 + CVE-2026-56403..56409)

Medium6.9CVE-2026-56132 · Published Aug 25, 2026

**Summary** `libPoco.so` from the bundled CloudXR Runtime SDK statically links libexpat 2.8.1, which is vulnerable to CVE-2026-56132 (heap buffer overflow in `doProlog()`) and CVE-2026-56403 through CVE-2026-56409 (integer overflows). All are fixed upstream in libexpat 2.8.2. **Details** `src/core/cloudxr/python/CMakeLists.txt` extracts the entire CloudXR SDK tarball into `isaacteleop/cloudxr/native/`, so `libPoco.so` ships in the published wheel and in every image built from it. It is loaded at runtime — `libNvStreamServer.so` carries a `NEEDED` entry for `libPoco`. Verify against any installed wheel or extracted SDK: ``` strings isaacteleop/cloudxr/native/libPoco.so | grep -oiE 'expat_2\.[0-9.]+' # expat_2.8.1 ``` **Impact** **No CloudXR Runtime SDK build currently ships a fixed libexpat.** Swept every release on NGC `0566138804516934/cloudxr-dev/cloudxr-runtime-binary`, extracting `libPoco.so` from each tarball: | SDK version | date | expat | |---|---|---| | 6.1.0 | 2026-03-12 | 2.6.4 | | 6.2.0 | 2026-05-20 | 2.6.4 | | 6.2.1-rc1 | 2026-06-12 | 2.6.4 | | 6.2.1-rc2 | 2026-06-25 | **2.8.1** | | 6.2.1 | 2026-06-26 | **2.8.1** | | 6.2.2-rc1 / -rc2 / 6.2.2 | 2026-07-01 … 07-06...

GitHub advisory

Affected versions

PackageAffectedFixed in
isaacteleop
PyPI
>= 1.3.131No fix yet
Details and references

**Summary** `libPoco.so` from the bundled CloudXR Runtime SDK statically links libexpat 2.8.1, which is vulnerable to CVE-2026-56132 (heap buffer overflow in `doProlog()`) and CVE-2026-56403 through CVE-2026-56409 (integer overflows). All are fixed upstream in libexpat 2.8.2. **Details** `src/core/cloudxr/python/CMakeLists.txt` extracts the entire CloudXR SDK tarball into `isaacteleop/cloudxr/native/`, so `libPoco.so` ships in the published wheel and in every image built from it. It is loaded at runtime — `libNvStreamServer.so` carries a `NEEDED` entry for `libPoco`. Verify against any installed wheel or extracted SDK: ``` strings isaacteleop/cloudxr/native/libPoco.so | grep -oiE 'expat_2\.[0-9.]+' # expat_2.8.1 ``` **Impact** **No CloudXR Runtime SDK build currently ships a fixed libexpat.** Swept every release on NGC `0566138804516934/cloudxr-dev/cloudxr-runtime-binary`, extracting `libPoco.so` from each tarball: | SDK version | date | expat | |---|---|---| | 6.1.0 | 2026-03-12 | 2.6.4 | | 6.2.0 | 2026-05-20 | 2.6.4 | | 6.2.1-rc1 | 2026-06-12 | 2.6.4 | | 6.2.1-rc2 | 2026-06-25 | **2.8.1** | | 6.2.1 | 2026-06-26 | **2.8.1** | | 6.2.2-rc1 / -rc2 / 6.2.2 | 2026-07-01 … 07-06 | **2.8.1** | | 6.3.0-rc1 / -rc2 / -rc3 | 2026-07-27 … 07-31 | **2.8.1** | Uniform across `amd64` and `arm64`, across the `external` and `exp-external` variants, and identical in the `-public` and `-private` NGC channels (checked for 6.3.0-rc3). The vulnerable range is therefore **SDK 6.2.1-rc2 and later**, including the current latest, 6.3.0-rc3. Builds on 6.2.1-rc1 and earlier carry 2.6.4, which is exposed to different expat CVEs, not these. Note the timing: expat 2.8.2 was released 2026-06-25, the same day 6.2.1-rc2 picked up 2.8.1. The vendored copy has not been refreshed across the seven builds since, spanning roughly five weeks. Teleop is affected because `src/core/cloudxr/python/CMakeLists.txt` pins `CXR_RUNTIME_SDK_VERSION` from `deps/cloudxr/.env.default` — currently 6.3.0-rc2, moved off 6.2.1 in 01e1b804. The originating scan of `6.3.0-rc3-public` flagged `libPoco.so` in `isaacteleop-1.4.110rc1-cp312-cp312-manylinux_2_35_aarch64.whl` and in all four Linux SDK tarballs. **First affected `isaacteleop` build is 1.4.41.** The SDK pin moved 6.2.0 → 6.2.1 in 63c12ca6 (2026-07-13), and the patch component is the commit count since the `VERSION` bump (`cmake/IsaacTeleopVersion.cmake`), which puts that commit at 1.4.41. Everything from there is affected: 1.4.41 through 1.4.103 on `main`, 1.4.104 through 1.4.111 on `release/1.4.x` (which contains the same commit — hence the scanned 1.4.110rc1), and all of 1.5.x. Builds at 1.4.40 and earlier bundled SDK 6.2.0 or older with expat 2.6.4. The Win64 SDK zip published alongside each version also exists, but Teleop does not consume it — `scripts/download_cloudxr_runtime_sdk.sh` resolves Linux `amd64`/`arm64` only — so it is out of scope here, though it likely carries the same `libPoco` build. Reachability from Teleop is unconfirmed. CVE-2026-56132 requires `XML_ExternalEntityParserCreate` (DTD sharing across parsers). Whether the CloudXR runtime parses attacker-influenced XML via `Poco::XML`, rather than only local configuration, needs an answer from the CloudXR team. **Patches** None available, and no newer SDK to move to — every published build from 6.2.1-rc2 onward carries 2.8.1. Requires a CloudXR SDK rebuild against libexpat 2.8.2, covering both the `external` and `exp-external` tarball variants and both architectures, followed by a `CXR_RUNTIME_SDK_VERSION` bump in `deps/cloudxr/.env.default`. CloudXR already moved 2.6.4 → 2.8.1 at 6.2.1-rc2, so this repeats a refresh they have done before — it needs to go one patch further. **Workarounds** None. Expat is statically linked at hidden visibility (`nm -D` on `libPoco.so` exports no `XML_*` symbols), so it can be neither patched in place nor `LD_PRELOAD`-interposed with a fixed system libexpat.

CVSS 3.1
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L
Severity from
GitHub (reviewed advisory)
Weakness
CWE-122, CWE-787

More Nvidia advisories

All Nvidia
Advisory
Nvidia OpenShell: command injection
High8.8Aug 25
Nvidia OpenShell: path traversal
High8.5Aug 25
Nvidia OpenShell: code execution
Critical9.9Aug 25
Nvidia NemoClaw: command injection
High7.8Aug 25
Nvidia NemoClaw: code execution
High7.5Aug 25
Nvidia NemoClaw: remote code execution
High8.1Aug 25

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.