Lucene search
K

Ruby Gem sfpagent 0.4.14 Command Injection

🗓️ 18 Apr 2014 00:00:00Reported by Larry W. CashdollarType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 40 Views

Remote Command Injection in Ruby Gem sfpagent 0.4.14. User input in JSON body allows remote code execution

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Ruby Gem sfpagent 0.4.14 Command Injection Vulnerability
19 Apr 201400:00
zdt
CVE
CVE-2014-2888
23 Apr 201414:00
cve
Cvelist
CVE-2014-2888
23 Apr 201414:00
cvelist
EUVD
EUVD-2017-0313
7 Oct 202500:30
euvd
Github Security Blog
sfpagent Command Injection vulnerability
24 Oct 201718:33
github
NVD
CVE-2014-2888
23 Apr 201415:55
nvd
OSV
GHSA-VM28-MRM7-FPJQ sfpagent Command Injection vulnerability
24 Oct 201718:33
osv
Prion
Design/Logic Flaw
23 Apr 201415:55
prion
RubySec
sfpagent Gem for Ruby JSON[body] Module Name Remote Command Execution
16 Apr 201400:00
rubygems
securityvulns
Different Ruby gems security vulnerabilities
4 May 201400:00
securityvulns
Rows per page
`Title: Remote Command Injection in Ruby Gem sfpagent 0.4.14  
  
Date: 4/15/2014  
  
Author: Larry W. Cashdollar, @_larry0  
  
CVE: 2014-2888  
  
Download: http://rubygems.org/gems/sfpagent  
  
Vulnerability  
The list variable generated from the user supplied JSON[body] input is passed directly to the system() shell on line 649. If a user supplies a module name with shell metacharacters like ; they might be able to execute shell commands on the remote system as the sfpagent running user id.  
  
637 code, body = get_data(address, port, '/modules')  
638 raise Exception, "Unable to get modules list from {name}" if code.to_i != 200  
639   
640 modules = JSON[body]  
641 list = ''  
642 schemata.each { |m|  
643 list += "{m} " if File.exist?("{modules_dir}/{m}") and  
644 (not modules.has_key?(m) or modules[m] != get_local_module_hash(m, modules_dir).to_s)  
645 }  
646   
647 return true if list == ''  
648   
649 if system("cd #{modules_dir}; #{install_module} #{address} #{port} #{list} 1>/dev/null 2>/tmp/install_module.error")  
650 Sfp::Agent.logger.info "Push modules #{list}to #{name} [OK]"  
651 else  
652 Sfp::Agent.logger.warn "Push modules #{list}to #{name} [Failed]"  
653 end  
654   
655 return true  
  
Vendor: Notified 4/15/14. Version 0.4.15 fixes this issue.  
  
Advisory: http://www.vapid.dhs.org/advisories/spfagent-remotecmd.html  
  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation