У меня есть скрипт bash, который я запускаю через procmail. Procmail передает в поле subject и из сообщения электронной почты в качестве аргументов сценария bash. Поскольку эти значения никак не анализируются, я пытаюсь выяснить, есть ли какие-либо уязвимости в bash, которыми кто-то может воспользоваться, и если да, то, что я могу сделать, чтобы защитить их. Вот пример кода, чтобы проиллюстрировать, что происходит:
#!/bin/bash
/usr/sbin/sendmail -t <<EOF
From: "myhost Administrator" <admin@myhost.example.com>
To: john_doe@gmail.com
Subject: An email subject
You've received a new email.
It has a subject of "$2"
It was sent from "$1".
EOF
Этот сценарий bash будет вызываться procmail с помощью сценария .procmailrc, например:
:0
* ^From:\s*\/.*
{
FROM = "$MATCH"
}
:0
* ^Subject:\s*\/.*
{
SUBJECT = "$MATCH"
}
:0 c:
* ^To:.*@example.com
| /home/john_doe/examplescript.bash "$FROM" "$SUBJECT"
Две области, для которых я задаюсь вопросом об уязвимостях внедрения, находятся в создании сценария:
/home/john_doe/examplescript.bash "$FROM" "$SUBJECT"
и использование переменных в скрипте.
/usr/sbin/sendmail -t <<EOF
From: "myhost Administrator" <admin@myhost.example.com>
To: john_doe@gmail.com
Subject: An email subject
You've received a new email.
It has a subject of "$2"
It was sent from "$1".
EOF
Если вам интересно, вот фактический вариант использования, который напомнил мне этот вопрос