2014 m. gegužės 21 d., trečiadienis

Beginners error: Hewlett-Packards driver software executes rogue binary C:\Program.exe

Hi @ll,

several programs of the current Windows 7 driver software for the
"HP OfficeJet 6700" multifunction device execute a rogue program
C:\Program.exe


The evidence (an excerpt from the SAFER log, cf.
<http://technet.microsoft.com/en-us/library/bb457006.aspx> or
<https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/safer_trouble.mspx>):


HPScanDisco.exe (PID = 3980) identified C:\Program.exe as Unrestricted using default rule, Guid =
{11015445-d282-4f86-96a2-9e485f593302}
FaxApplications.exe (PID = 3148) identified C:\Program.exe as Unrestricted using default rule, Guid =
{11015445-d282-4f86-96a2-9e485f593302}
ScanToPCActivationApp.exe (PID = 2944) identified C:\Program.exe as Unrestricted using default rule, Guid =
{11015445-d282-4f86-96a2-9e485f593302}


In every instance these programs try to execute
C:\Program Files\HP\HP Officejet 6700\Bin\HPNetworkCommunicatorCom.exe


The vulnerability is the result of calling Windows' CreateProcess*()
with an unquoted command line containing spaces!

Cf. <http://msdn.microsoft.com/library/cc144175.aspx> or
<http://msdn.microsoft.com/library/cc144101.aspx>:

| Note: If any element of the command string contains or might contain
| spaces, it must be enclosed in quotation marks. Otherwise, if the
| element contains a space, it will not parse correctly. For instance,
| "My Program.exe" starts the application properly. If you use
| My Program.exe without quotation marks, then the system attempts to
| launch My with Program.exe as its first command line argument. You
| should always use quotation marks with arguments such as "%1" that are
| expanded to strings by the Shell, because you cannot be certain that
| the string will not contain a space.


HP: would you mind to hire just a few people for a little bit of QA?
And some more to teach beginner courses on (Windows) programming to
your developers?

"Long" filenames containing spaces are used in Windows for 20 years
now and your developers still dont get them right?


regards
Stefan Kanthak


JFTR: the driver for the HP OfficeJet 6700 is not the only one from HP
      with such a trivial to detect bug and vulnerability.


Timeline:
~~~~~~~~~

2014-04-14    sent vulnerability report to vendor

2014-04-14    vendor replies: forwarded to responsible division, will
              keep you informed

...

2014-05-17    request status

2014-05-19    vendor replies: no information from the lab

2014-05-20    vendor replies:
              "after looking at this problem and discussing it previously
              with Microsoft MSRC, we have decided that this unquoted
              registry string is not a security issue.
              ...
              We are not going to be issuing a patch or security bulletin
              for this issue."

JFTR: the vulnerable pathname is NOT in the registry, but in the code!

2014-05-20    report published

Komentarų nėra:

Rašyti komentarą