Socat security advisory 5 - PROXY-CONNECT address overflow Overview socats PROXY-CONNECT address is vulnerable to a buffer overflow with data from command line Vulnerability Id: CVE-2014-0019 Severity: Low Details Due to a missing check during assembly of the HTTP request line a long target server name ( in the documentation) in the PROXY-CONNECT address can cause a stack buffer overrun. Exploitation requires that the attacker is able to provide the target server name to the PROXY-CONNECT address in the command line. This can happen for example in scripts that receive data from untrusted sources. Testcase This overflow can not always be reliably reproduced. It may be helpful to build socat with gcc option -Wp,-D_FORTIFY_SOURCE=2 or to run socat under ElectricFence or another memory checker. In one terminal run a dummy server because socat first needs to establish a connection: socat tcp-l:8080,reuseaddr /dev/null In a second terminal run the check: socat - PROXY-CONNECT:localhost:$(perl -e "print 'A' x 384"):1,proxyport=8080 If this command terminates with Segmentation Violation, with a buffer overflow message or similar, your version of socat is vulnerable. However, a Connection refused message does not necessarily mean that your version is not vulnerable! Affected versions 1.3.0.0 - 1.7.2.2 2.0.0-b1 - 2.0.0-b6 Not affected or corrected versions 1.0.0.0 - 1.2.0.0 1.7.2.3 and later 2.0.0-b7 and later Workaround Truncate the target server name to a length of 256 characters before passing it to socats command line Download The updated sources can be downloaded from: http://www.dest-unreach.org/socat/download/socat-1.7.2.3.tar.gz http://www.dest-unreach.org/socat/download/socat-2.0.0-b7.tar.gz Patch to 1.7.2.2: http://www.dest-unreach.org/socat/download/socat-1.7.2.3.patch.gz Patch to 2.0.0-b6: http://www.dest-unreach.org/socat/download/socat-2.0.0-b7.patch.gz Credits Credits to Florian Weimer of the Red Hat Product Security Team