Bug 57448 - SQL Injection через лог Squid
Summary: SQL Injection через лог Squid
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: squidmill (show other bugs)
Version: unstable
Hardware: all Linux
: P5 major
Assignee: manowar@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-09 16:24 MSK by Sergey Vlasov
Modified: 2026-01-12 19:21 MSK (History)
1 user (show)

See Also:


Attachments
bad.log — строка из access.log, на которой падает squidmill (142 bytes, text/x-log)
2026-01-09 16:24 MSK, Sergey Vlasov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Vlasov 2026-01-09 16:24:40 MSK
Created attachment 20455 [details]
bad.log — строка из access.log, на которой падает squidmill

squidmill-2.7.0-alt2

Текстовые поля из access.log (например, поле ident) вставляются в SQL-запрос без экранирования символа "'", что приводит как минимум к падению squidmill при обработке строки лога, содержащей этот символ в одном из полей (Squid считает, что этот символ допустимо писать в лог без дополнительного экранирования).

$ /usr/sbin/squidmill -d bad.db bad.log
SQLite3 error (1): near "', '": syntax error
*** ERROR -- This object was raised: (sqlite3-err 1 "near \"', '\": syntax error")

Отдельный вопрос — нужно ли вообще обрабатывать строки с TCP_DENIED/407 (в них в поле ident пишется любое значение, присланное клиентом, даже если аутентификация не пройдена, но текущая реализация squidmill просто добавляет эти записи в статистику, учитывая в качестве трафика выданное Squid сообщение об ошибке аутентификации).