Description
A remote code execution vulnerability occurs in OpenTSDB through 2.4.0 via command injection in the yrange parameter. The yrange value is written to a gnuplot file in the /tmp directory. This file is then executed via the mygnuplot.sh shell script. (tsd/GraphHandler.java attempted to prevent command injections by blocking backticks but this is insufficient.)
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
Metasploit 1 module
-
OpenTSDB 2.4.0 unauthenticated command injection
exploit/linux/http/opentsdb_yrange_cmd_injection
GitHub 1 repository
-
CyberCTF/vulhub-opentsdb-cve-2020-35476 ★ 0 · Oct 8, 2026
Vulhub opentsdb/CVE-2020-35476: OpenTSDB Gnuplot Command Injection (CVE-2020-35476), run with Isoloom
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Automated scanner template
A ready-made Nuclei template detects this vulnerability automatically. Vulnerabilities with public scanner templates are typically probed across the internet soon after the template appears — exposed systems should be patched first.
- OpenTSDB <=2.4.0 - Remote Code Execution http/cves/2020/CVE-2020-35476.yaml
Source: projectdiscovery/nuclei-templates (MIT) — updated daily. Only links are listed.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | net.opentsdb:opentsdb | <= 2.4.0 | — | GHSA-hv53-q76c-7f8c |