# CVE-2020-10289: RVD#2401: Use of unsafe yaml load, ./src/actionlib/tools/library.py:132

> An unsafe YAML load in ROS actionlib allows attackers to execute arbitrary Python code via crafted action messages.

- **Severity:** High 8.0 (`CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 20 Aug 2020
- **Updated:** 16 Sep 2024
- **Also known as:** DEBIAN-CVE-2020-10289, DLA-2357-1, GHSA-2x5j-2j53-xffv, UBUNTU-CVE-2020-10289

## What is CVE-2020-10289?

CVE-2020-10289 is a high-severity unsafe deserialization vulnerability in Open Robotics ros, published on 20 Aug 2020. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

### Official description

Use of unsafe yaml load. Allows instantiation of arbitrary objects. The flaw itself is caused by an unsafe parsing of YAML values which happens whenever an action message is processed to be sent, and allows for the creation of Python objects. Through this flaw in the ROS core package of actionlib, an attacker with local or remote access can make the ROS Master, execute arbitrary code in Python form. Consider yaml.safe_load() instead. Located first in actionlib/tools/library.py:132. See links for more info on the bug.

Weakness: CWE-502 (Deserialization of Untrusted Data), CWE-20 (Improper Input Validation)

## Which versions are affected by CVE-2020-10289?

It affects 1 product.


Products: Openrobotics Robot Operating System.

## How do I fix CVE-2020-10289?

Apply the vendor's patch.

## Is CVE-2020-10289 being exploited?

There is no known exploitation of CVE-2020-10289 in the wild and no public exploit code.

## Other vulnerabilities in Open Robotics ros

- [CVE-2024-38921](https://insights.sbomify.com/CVE-2024-38921/): Use after free in n/a (critical 9.8)
- [CVE-2024-41644](https://insights.sbomify.com/CVE-2024-41644/): Privilege escalation in n/a (critical 9.8)
- [CVE-2024-41645](https://insights.sbomify.com/CVE-2024-41645/): Privilege escalation in n/a (critical 9.8)
- [CVE-2024-41646](https://insights.sbomify.com/CVE-2024-41646/): Code injection in n/a (critical 9.8)
- [CVE-2024-41647](https://insights.sbomify.com/CVE-2024-41647/): Code injection in n/a (critical 9.8)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2020-10289 and fix it if it is affected.

What it is: CVE-2020-10289 is a high-severity unsafe deserialization vulnerability in Open Robotics ros, published on 20 Aug 2020. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2020-10289 in the wild and no public exploit code.

Affected product: Open Robotics ros. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2020-10289/ (Markdown: https://insights.sbomify.com/CVE-2020-10289/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2020-10289
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2020-10289
- OSV: https://osv.dev/vulnerability/CVE-2020-10289

---
From sbomify Insights: https://insights.sbomify.com/CVE-2020-10289/
Summaries are generated and may contain mistakes; the official description above is the record.
