#######################################################################
Luigi Auriemma
Application:Epson EventManager
http://www.epson.com
Versions: <= 2.50
Platforms:Windows
Bug:Denial of Service
Exploitation: remote
Date: 14 Mar 2012
Author: Luigi Auriemma
e-mail: aluigi@autistici.org
web:aluigi.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
Epson EventManager is a program started when the computer starts and
listens on port 2968 ("Network Scan" enabled by default), it allows to
automate some actions of the Epson scanners (like the scan&save button)
through the PushScan protocol.#######################################################################
======
2) Bug
======
The secure strncpy function that copies the "x-protocol-version" string
in a 7 bytes buffer can be forced to (auto)terminate the program if
it's longer than that size and starts with "1.":
0163967F|> 53 PUSH EBX
01639680|. 8B5C24 24MOV EBX,DWORD PTR SS:[ESP+24]
01639684|. 53 PUSH EBX
01639685|. 50 PUSH EAX
01639686|. E8 25F8FFFFCALL epnsm.01638EB0 ; parse "x-protocol-version" string
0163968B|. 83C4 08ADD ESP,8
0163968E|. 83F8 01CMP EAX,1
01639691|. 0F85 FC000000JNZ epnsm.01639793; version 1
01639697|. 8B4C24 2CMOV ECX,DWORD PTR SS:[ESP+2C]
0163969B|. 8B5424 0CMOV EDX,DWORD PTR SS:[ESP+C]
0163969F|. 6A 06PUSH 6
016396A1|. 33C0 XOR EAX,EAX
016396A3|. 52 PUSH EDX
016396A4|. 8901 MOV DWORD PTR DS:[ECX],EAX
016396A6|. 51 PUSH ECX
016396A7|. 66:8941 04 MOV WORD PTR DS:[ECX+4],AX
016396AB|. E8 D0B5FFFFCALL epnsm.01634C80 ; secure strncpy
#######################################################################
===========
3) The Code
===========
http://aluigi.org/poc/eeventmanager_1.dat
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/18602.dat
nc SERVER 2968 < eeventmanager_1.dat
#######################################################################
======
4) Fix
======
No fix.#######################################################################