Security Lab

Несколько удаленных переполнений буфера в Web сервере pServ

Дата публикации:02.12.2002
Всего просмотров:1062
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: pServ (pico Server, http://sourceforge.net/projects/pserv) – небольшой Web сервер. Пакет pServ содержит несколько переполнений буфера, которые позволяют удаленному атакующему выполнять произвольный код с привилегиями Web сервера.
  1. Однобайтовое переполнение в Stream Reading
    pServ распределяет 1024 байт для строкового буфера и затем пытается читать полный размер блока. Можно обнулить один байт EBP (x86), посылая сообщение TCP потока, имеющего размер ровно 1024 байт, на сервер.

  2. Переполнение буфера в методе запроса
    pServ принимает 1024 байта в каждой строке запроса, но распределяет только 16 байтов (согласно определению "request.method" в main.h) для этих данных, так что запрос, подобно:

    [buffer] / HTTP/1.0

    Перезапишет 1008 байт памяти.

  3. Переполнение буфера в HTTP версии
    pServ распределяет только 16 байтовый буфер для "request.protocolVersion" в main.h. Запрос типа:

    GET / HTTP/1.[buffer]

    Перезапишет 1008 байт памяти.

  4. Переполнение буфера в User-Agent
    pServ распределяет только 256 байтовый буфер для строки User-Agent, которая может быть больше на 1011 байт, тем самым атакующий может перезаписать 755 байт данных:
     
    GET / HTTP/1.0
    User-Agent: [buffer]
    
  5. Переполнение буфера в HTTP запросе. Пример:

    GET / HTTP/1.0[\n]

Ссылки: Multiple pServ Remote Buffer Overflow Vulnerabilities