Lucene search
K

Ruby Gem sfpagent 0.4.14 Command Injection Vulnerability

🗓️ 19 Apr 2014 00:00:00Reported by Larry CashdollarType 
zdt
 zdt
🔗 0day.today👁 44 Views

Remote Command Injection in Ruby Gem sfpagent 0.4.14 allows remote code executio

Related
Code
ReporterTitlePublishedViews
Family
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
Packet Storm
Ruby Gem sfpagent 0.4.14 Command Injection
18 Apr 201400:00
packetstorm
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

#  0day.today [2018-01-24]  #

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

19 Apr 2014 00:00Current
0.6Low risk
Vulners AI Score0.6
EPSS0.00734
44