| 1.1, Аноним (1), 12:14, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> We Asked Claude to Audit Sagredo's qmail. It found a RCE.
> "Find vulnerabilities in latest version of qmail: https://github.com/sagredo-dev/qmail. Focus on vulnerabilities that could result in RCE or system compromise by processing a crafted email."
> That was the entire prompt.
Очередное спасибо нейросетям.
| | |
| |
| 2.6, Аноним (6), 12:41, 19/04/2026 [^] [^^] [^^^] [ответить]
| +/– |
А так можно было? И никаких тебе "I'm sorry, but i can't" как у ChatGPT?
| | |
|
| |
| 2.25, Аноним (25), 17:51, 19/04/2026 [^] [^^] [^^^] [ответить]
| –3 +/– |
ежики по прежнему использовали c/c++ и кололись, ужасное дырявое поделие древних людей уровня VBScript в древнем Internet Explorer
| | |
| |
| 3.32, Аноним (32), 21:29, 19/04/2026 [^] [^^] [^^^] [ответить]
| +/– |
Так это - компиляторы есть только у этих ваших устаревших немодных языков.
| | |
| 3.33, Аноним (33), 21:30, 19/04/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
С какого боку тут именно "c/c++"? Вызов дочернего процесса без должного обезвреживания аргументов ни разу не есть отличительная особенность "c/c++".
| | |
|
|
| |
| 2.17, Аноним (17), 15:14, 19/04/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
> Уязвимость вызвана отсутствием экранирования спецсимволов
Конечно случайность! Она у всех случается почему-то постоянно.
| | |
|
| 1.5, Ю.Т. (?), 12:30, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Есть же приличное развитие авторства фон Ляйтнера (@fefe). Зачем это Сагредо, где очевидно контроль над производством слабее?
| | |
| |
| 2.8, Ю.Т. (?), 13:15, 19/04/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Есть же приличное развитие авторства фон Ляйтнера (@fefe). Зачем это Сагредо, где
> очевидно контроль над производством слабее?
Мои извинения, не Ляйтнер, а Эрвин Хофман (@feh), перепутал ники.
| | |
|
| 1.18, Аноним (18), 15:33, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
У этого форка на гитхабе 18 звезд (аж восемнадцать!) какое он отношение к qmail имеет? Кто то его использует?
| | |
| 1.22, albb (ok), 15:58, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Зачем, зачем сохранять строку текста через вызов внешнего исполняемого файла? Или там тоже искусственный идиот постарался?
| | |
| |
| 2.24, Rev (ok), 17:47, 19/04/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это же юникс-вей! Ничего ты не понимаешь! Программа должна собираться из кучи разнородных утилит!
| | |
| 2.30, Аноним (30), 21:14, 19/04/2026 [^] [^^] [^^^] [ответить]
| +/– |
Или искусственный идиот. Или гуглил на стек оверфлоу, и сначала нашёл команду touch для создания пустого файла - что вполне логично, если пишешь на bash - а потом нашёл, как запустить системную команду из С/С++. popen как бы намекает.
----------------------
Впрочем, есть у меня одна идея: если теоретически создание файла может занимать дофига времени (допустим, на глючном сетевом диске создаём), это может быть способ растянуть процесс. Можно было конечно сделать fork() или запустить в отдельном потоке, но если нужен ещё и контроль завершения процесса - вот вам, файловый дескриптор который будет доступен на чтение, когда процесс завершится.
| | |
|
| 1.28, Аноним (28), 19:19, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> https://man7.org/linux/man-pages/man2/open.2.html
//man7.org/linux/man-pages/man3/popen.3.html
unsigned long i = 0;
if (control_readint(&i,"control/notlshosts_auto") && i)
{
struct passwd *info = getpwuid(getuid()); // get qmail dir
FILE *fp;
char acfcommand[1200];
sprintf(acfcommand, "/bin/touch %s/control/notlshosts/'%s'", info->pw_dir, partner_fqdn);
fp = popen(acfcommand, "r"); // <-------------------!!!!!
if (fp == NULL)
{
out("Failed to run touch command ");
exit(1);
}
pclose(fp);
}
| | |
| 1.29, Аноним (29), 20:49, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
>отсутствием экранирования спецсимволов в имени хоста, возвращаемого DNS-сервером при определении MX-шлюза, в сочетании с передачей полученного имени в команду popen без должного разделения и фильтрации аргументов при вызове shell.
Таким людям надо пожизненно запрещать заниматься программированием на людом языке, хоть на Раст, хоть на Бэйсике.
| | |
| 1.34, Аноним (33), 21:39, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот, ять, почему когла мне, ни разу не профессиональному программисту, а вовсе даже сисадмину, понадобилось написать небольшую программку, которая использовала функциональность некоей утилиты, я не поленился прочитать документацию на либу, на которой основана эта утилита, и изучить как подтягивать сишные либы в том языке, на котором надо было эту программу написать. И всё это - именно для того, чтобы избежать одного-единственного класса уязвимостей - того, который описан в новости.
А профессиональные программисты пошут вот так, как они пишут.
В этом же нет никакой принципиальной непреодолимой сложности - вместо вызова дочернего шелла подтянуть либу и дёргать её функции!
| | |
| 1.35, Аноним83 (?), 21:43, 19/04/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Потому что какакод. И пейсатель поди или древний или с другого языка свичнулся.
touch - чтобы своё такое реализовать кода надо всего строчек менее 20 строчек:
#include <sys/stat.h>
static inline int
touch_file(const char *filename) {
int fd, rc;
struct timespec ts[2];
ts[0].tv_sec = ts[1].tv_sec = 0;
ts[0].tv_nsec = ts[1].tv_nsec = UTIME_NOW;
if (0 == utimensat(AT_FDCWD, filename, ts, 0))
return (0);
fd = open(filename, (O_WRONLY | O_CREAT), DEFFILEMODE);
if (-1 == fd)
return (errno);
rc = futimens(fd, ts);
close(fd);
if (0 == rc)
return (0);
return (errno);
}
А дёргать целый запуск процесса ради такой ерунды на 1 / 4 сискола это просто нечто.
| | |
| |
| 2.37, Аноним (29), 22:07, 19/04/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>пейсатель поди или древний или с другого языка
Если у человека уровень IQ < 40, то совершенно не имеет значения его возраст или на каком языке он пишет.
| | |
|
|