CVE-2025-54314
Low · 2.8CVSS
2.8
EPSS
0.2%
Published
Jul 20, 2025
CISA due date
—
Cloudanix analysis
A library used by many Ruby applications had a reported issue with building system commands that could let someone run unwanted actions, but experts say it cannot actually be reached by attackers so the practical danger is very low.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- High
- Impact
- Data Tampering
- Component
- Library
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Thor library method before 1.4.0 constructs shell commands from input that could theoretically allow command injection if attacker-controlled arguments reach it, though the supplier states the affected method only accepts Thor-controlled arguments with no attacker influence possible.
Why it matters to the business
Minimal operational risk given the low CVSS, low EPSS with slight upward trend, disputed nature of the flaw, and 463 days since publication with no known exploitation or ransomware use; widespread use of the Thor library in Ruby ecosystems means organizations should still apply the fix to eliminate any residual uncertainty.
How an attack unfolds
An attacker would need to supply crafted input to the vulnerable Thor method that builds a shell command; however, because the method arguments are controlled internally by Thor itself, no realistic path exists for external control or injection, consistent with the supplier dispute and absence of exploitation in the wild.
How to fix it
Upgrade rails/thor to commit 518ae0f49bb1c3dc2226607c07da74b591759ed0 or later; for Alpaquita packages upgrade libtasn1 to 4.19.0-r1 (v23) or 4.20.0-r0 (stream).
How to confirm the fix worked
Confirm Thor version is at or above the fixed commit; review library usage to ensure no direct calls bypass Thor argument handling; re-scan with dependency tools after upgrade.
Typical attack path
- Identify a Thor version prior to the fixed commit
- Attempt to pass attacker-controlled values into the shell-command construction method
- Observe failure to achieve injection due to internal argument control
How to detect it
Search application and system logs for unexpected shell command execution originating from Thor library calls; review process creation events tied to Thor methods; no confirmed exploitation artifacts exist due to disputed impact and zero KEV entries.
What your security team should do
- Apply the listed fixed versions or commits immediately as a precautionary measure
- Monitor EPSS trend for any further increase despite current low score
- Add Thor to routine dependency scanning to catch future updates
The record
Thor before 1.4.0 can construct an unsafe shell command from library input. NOTE: this is disputed by the Supplier because "the method that was fixed can only be used with arguments that are controlled by Thor, and there is no way an attacker can take control of those arguments."
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | thor | 0 | 1.4.0 |
| Chainguard | kube-fluentd-operator | 0 | 1.18.2-r42 |
| Chainguard | kube-fluentd-operator-compat | 0 | 1.18.2-r42 |
| Chainguard | kube-fluentd-operator-default-config | 0 | 1.18.2-r42 |
| Chainguard | kube-fluentd-operator-oci-entrypoint | 0 | 1.18.2-r42 |
| Chainguard | ruby3.2-rails-7.1 | 0 | 7.1.5.1-r10 |
| Chainguard | ruby3.2-rails-7.1-compat | 0 | 7.1.5.1-r10 |
| Chainguard | ruby3.2-rails-7.2 | 0 | 7.2.2.1-r10 |
| Chainguard | ruby3.2-rails-7.2-compat | 0 | 7.2.2.1-r10 |
| Chainguard | ruby3.2-rails-8.0 | 0 | 8.0.2-r7 |
| Chainguard | ruby3.2-rails-8.0-compat | 0 | 8.0.2-r7 |
| Chainguard | ruby3.3-rails-7.1 | 0 | 7.1.5.1-r10 |
| Chainguard | ruby3.3-rails-7.1-compat | 0 | 7.1.5.1-r10 |
| Chainguard | ruby3.3-rails-7.2 | 0 | 7.2.2.1-r10 |
| Chainguard | ruby3.3-rails-7.2-compat | 0 | 7.2.2.1-r10 |
| Chainguard | ruby3.3-rails-8.0 | 0 | 8.0.2-r7 |
| Chainguard | ruby3.3-rails-8.0-compat | 0 | 8.0.2-r7 |
| Chainguard | ruby3.4-rails-7.1 | 0 | 7.1.5.1-r10 |
| Chainguard | ruby3.4-rails-7.1-compat | 0 | 7.1.5.1-r10 |
| Chainguard | ruby3.4-rails-7.2 | 0 | 7.2.2.1-r10 |
| Chainguard | ruby3.4-rails-7.2-compat | 0 | 7.2.2.1-r10 |
| Chainguard | ruby3.4-rails-8.0 | 0 | 8.0.2-r7 |
| Chainguard | ruby3.4-rails-8.0-compat | 0 | 8.0.2-r7 |
| Debian:11 | ruby-thor | 0 | No fix |
| Debian:12 | ruby-thor | 0 | No fix |
| Debian:13 | ruby-thor | 0 | No fix |
| Debian:14 | ruby-thor | 0 | No fix |
| Wolfi | kube-fluentd-operator | 0 | 1.18.2-r42 |
| Wolfi | kube-fluentd-operator-compat | 0 | 1.18.2-r42 |
| Wolfi | kube-fluentd-operator-default-config | 0 | 1.18.2-r42 |
| Wolfi | kube-fluentd-operator-oci-entrypoint | 0 | 1.18.2-r42 |
| Wolfi | ruby3.2-rails-8.0 | 0 | 8.0.2-r7 |
| Wolfi | ruby3.2-rails-8.0-compat | 0 | 8.0.2-r7 |
| Wolfi | ruby3.3-rails-8.0 | 0 | 8.0.2-r7 |
| Wolfi | ruby3.3-rails-8.0-compat | 0 | 8.0.2-r7 |
| Wolfi | ruby3.4-rails-8.0 | 0 | 8.0.2-r7 |
| Wolfi | ruby3.4-rails-8.0-compat | 0 | 8.0.2-r7 |
| openSUSE:Tumbleweed | rubygem-thor | 0 | 1.4.0-1.1 |
| openSUSE:Tumbleweed | rubygem-thor | 0 | 1.4.0-1.3 |
Related vulnerabilities
- CVE-2026-33170 Active Support is a toolkit of support libraries and Ruby core extensions extracted from… Also affects kube-fluentd-operator
- CVE-2026-33169 Active Support is a toolkit of support libraries and Ruby core extensions extracted from… Also affects kube-fluentd-operator
- CVE-2026-25500 Rack is a modular Ruby web server interface. Also affects kube-fluentd-operator
- CVE-2026-25765 Faraday is an HTTP client library abstraction layer that provides a common interface over… Also affects kube-fluentd-operator
- CVE-2025-14762 Missing cryptographic key commitment in the AWS SDK for Ruby may allow a user with write… Also affects kube-fluentd-operator
- CVE-2025-65637 Logrus is vulnerable to DoS when using Entry.Writer() Also affects kube-fluentd-operator
- CVE-2025-61919 Rack is vulnerable to a memory-exhaustion DoS through unbounded URL-encoded body parsing Also affects kube-fluentd-operator
- CVE-2025-61780 Rack has a Possible Information Disclosure Vulnerability Also affects kube-fluentd-operator