17th Oct 2002 [SBWID-5761]
COMMAND
SkyStream EMR5000 DVB router DoS
SYSTEMS AFFECTED
SkyStream EMR5000 Versions 1.16,1.17,1.18
PROBLEM
The vulnerabilities disclosed in this advisory were discovered during
routine penetration tests. They were further researched at Global
InterSec's facility [GIS Advisory ID :2002021001].
The research division can be reached at [research@globalintersec.com]
--snip--
The Linux based kernel, which the EMR5000 uses, has been modified to
work with SkyStream's customized PCB. Modifications include proprietary
DVB card drivers.
A problem exists within the kernel code which could cause a kernel
panic, when the device is no longer able to process data being pushed
into the ethernet ring buffers.
Rather than dropping packets, or even temporarily disabling the
interrupt address for the ethernet device, a null pointer exception
will occur in the interrupt handler, leading to a kernel panic.
Although the EMR5000 uses Intel's 82559ER ethernet controller, which is
supported by the eepro100 driver (included in the 2.4.x tree), this
condition could not be replicated on other systems, also with the
82559ER onboard and using the eepro100 drivers. This is almost
certainly down to how SkyStream have implemented DMA, in order to work
with their PCB configuration and is therefore a problem which is
inherent to the EMR5000 and not necessarily other systems using the
eepro100 kernel modules.
Because this bug is directly connected to the EMR5000's network
interface, the above bug may be exploited remotely. It may also be
triggered fairly anonymously, with the use of spoofed SYN packets for
example.
In our early tests, the EMR5000 did not reboot on a kernel panic and
required a manual (cold) reboot. The most recent boot version did
handle the condition and reboot cleanly.
Proof of concept/Exploit
========================
The following was the result of high volumes of IGMPv2 requests being
sent to the ethernet interface.
SkyStream Networks
Edge Media Router
Please login as 'emradmin' for Command-Line Interface
emr5000 login: Oops: Exception in kernel mode, sig: 4
NIP: C00FB4F4 XER: 00000000 LR: C00FB4F4 SP: C01D79A0 REGS: c01d78f0 TRAP: 0700
MSR: 00009230 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c01d6030[0] 'swapper' Last syscall: 120
last math 00000000 last altivec 00000000
GPR00: C00FB4F4 C01D79A0 C01D6030 0000001C 00001230 00000001 C0220000 00000000
GPR08: C0220000 C01E0000 00001236 C01D78E0 24004024 10068BC4 000C0A04 00000000
GPR16: 00000000 FFFE2198 00000000 00002FB6 00001230 001D7A80 00000000 C01D82C8
GPR24: 000001C0 C0220000 C01ECF00 00000007 C01D82C8 C01E0000 00000000 C45976E0
Call backtrace:
C00FB4F4 C00FEBE0 C00C4318 C0003BA0 C0003CCC C0002A38 C00FB40C
C00FB65C C00FEBE0 C00C3FE4 C0003BA0 C0003CCC C0002A38 20000000
C0003CCC C0002A38 C010C214 C00FF13C C001885C C0002A84 C002354C
C0004294 C00042BC C01ED8A0 C00023C4
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
Rebooting in 180 seconds..
--snip--
SOLUTION
Workaround
==========
Firewall all inbound traffic to the EMR5000, other than IGMP(2). This
is not a bullet proof work-around as the bug may also be exploited
through the use of IGMP
TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2025 AOH