SAP Crystal Reports 2008 GIOP Message Size Integer Overflow Remote Code Execution VulnerabilityTPTI-10-07: August 11th, 2010
TippingPoint™ IPS Customer ProtectionTippingPoint IPS customers are protected against this vulnerability by Digital Vaccine protection filter ID 9846. For further product information on the TippingPoint IPS:
Vulnerability DetailsThis vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of SAP Crystal Reports. Authentication is not required to exploit this vulnerability.
The specific flaw exists within the ebus-3-3-2-6.dll module responsible for parsing GIOP requests for multiple processes. While parsing the first packet the function OBGIOPServerWorker::extractHeader trusts the provided size of the next packet and attempts to re-allocate a buffer. By providing a large enough value an integer overflow can occur and the buffer can become undersized. A later memory copy using the original value specified in the packet can copy controlled data to the heap buffer. The affected services spawn multiple threads frequently enough that an attacker can theoretically win a race condition by sending multiple requests thus forcing the process to access the corrupted memory while the overflow is occurring. Successful exploitation would lead to remote code execution in the context of the SYSTEM user.
Vendor ResponseSAP has issued an update to correct this vulnerability. More details can be found at:
2010-05-03 - Vulnerability reported to vendor
2010-08-11 - Coordinated public release of advisory