{"id":"CVE-2020-35476","aliases":["EUVD-2021-1758","GHSA-hv53-q76c-7f8c"],"status":"published","title":"OS Command Injection in OpenTSDB","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.)","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.8533,"percentile":0.99719,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":false},"cwes":["CWE-78"],"published":"2020-12-16T00:00:00Z","modified":"2026-10-20T10:54:19Z","exploits":[{"source":"metasploit","id":"exploit/linux/http/opentsdb_yrange_cmd_injection","title":"OpenTSDB 2.4.0 unauthenticated command injection","type":"exploit","platform":"Linux,Unix","date":"2020-11-18","verified":true,"url":"https://www.rapid7.com/db/modules/exploit/linux/http/opentsdb_yrange_cmd_injection"},{"source":"pocgithub","id":"CyberCTF/vulhub-opentsdb-cve-2020-35476","title":"CyberCTF/vulhub-opentsdb-cve-2020-35476","date":"2026-10-08","url":"https://github.com/CyberCTF/vulhub-opentsdb-cve-2020-35476"},{"source":"nuclei","id":"CVE-2020-35476","title":"OpenTSDB \u003c=2.4.0 - Remote Code Execution","type":"detection template","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2020/CVE-2020-35476.yaml"}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"net.opentsdb:opentsdb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.4.0"}]}]},{"source":"osv","ecosystem":"Maven","package":"net.opentsdb:opentsdb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.4.0"}]}],"versions":["2.1.3","2.2.0","2.2.0RC1","2.2.1","2.2.2","2.3.0","2.3.0-RC1","2.3.0-RC2","2.3.1","2.3.2","2.4.0","2.4.0RC1"]}],"products":[{"vendor":"opentsdb","product":"opentsdb"}],"references":[{"url":"https://github.com/OpenTSDB/opentsdb/issues/2051","tags":["x_transferred","Exploit","Issue Tracking","Third Party Advisory","report","web"]},{"url":"http://packetstormsecurity.com/files/170331/OpenTSDB-2.4.0-Command-Injection.html","tags":["x_transferred","Exploit","Third Party Advisory","VDB Entry","evidence","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35476","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-hv53-q76c-7f8c"}],"sources":{"cve":[{"id":"CVE-2020-35476","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.)","status":"published","published":"2020-12-16T00:00:00Z","modified":"2024-08-04T17:02:08.232Z","updated_at":"2026-11-02T14:35:57.975444Z"}],"euvd":[{"id":"EUVD-2021-1758","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.)","status":"published","published":"2020-12-16T00:00:00Z","modified":"2024-08-04T17:02:08Z","updated_at":"2026-11-03T03:07:06.389211Z"}],"ghsa":[{"id":"GHSA-hv53-q76c-7f8c","title":"OS Command Injection in OpenTSDB","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.)","status":"published","published":"2021-08-02T17:02:21Z","modified":"2023-01-31T05:08:42Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:36:29.957996Z"}],"nvd":[{"id":"CVE-2020-35476","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.)","status":"published","published":"2020-12-16T08:15:13.56Z","modified":"2026-06-17T03:13:46.653Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:06:27.73474Z"}],"osv":[{"id":"CVE-2020-35476","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.)","status":"published","published":"2020-12-16T08:15:13.56Z","modified":"2026-10-20T10:54:19.774164601Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"GHSA-hv53-q76c-7f8c","title":"OS Command Injection in OpenTSDB","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.)","status":"published","published":"2021-08-02T17:02:21Z","modified":"2023-11-08T04:03:33.951959Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T15:46:49.621585Z"}]}}
