Skip to content

Commit 2e486d5

Browse files
authored
Get rid of potential temp file vulnerability
Also address https://github.com/koalaman/shellcheck/wiki/SC2086 in curl call
1 parent 90a1d18 commit 2e486d5

File tree

1 file changed

+13
-33
lines changed

1 file changed

+13
-33
lines changed

check_mk_telegram-notify.sh

Lines changed: 13 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,28 @@
99

1010
# Telegram API Token
1111
# Find telegram bot named "@botfarther", type /mybots, select your bot and select "API Token" to see your current token
12-
TOKEN=$NOTIFY_PARAMETER_1
12+
TOKEN=${NOTIFY_PARAMETER_1}
1313

1414
# Telegram Chat-ID or Group-ID
1515
# Open "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates" inside your Browser and send a HELLO to your bot, refresh side
16-
CHAT_ID=$NOTIFY_PARAMETER_2
17-
18-
# Write Check_MK output to a temporary file, delete depricated macros and create variable OUTPUT
19-
env | grep NOTIFY_ | grep -v "This macro is deprecated" | sort > $OMD_ROOT/tmp/telegram.out
20-
OUTPUT=$OMD_ROOT/tmp/telegram.out
21-
22-
# Read OUTPUT variable and create some more variables for every text-part you want to use afterwards
23-
HOSTNAME=$(grep NOTIFY_HOSTNAME $OUTPUT | cut -d'=' -f2)
24-
HOSTALIAS=$(grep NOTIFY_HOSTALIAS $OUTPUT | cut -d'=' -f2)
25-
WHAT=$(grep NOTIFY_WHAT $OUTPUT | cut -d'=' -f2)
26-
NOTIFICATIONTYPE=$(grep NOTIFY_NOTIFICATIONTYPE $OUTPUT | cut -d'=' -f2)
27-
SERVICEDESC=$(grep NOTIFY_SERVICEDESC $OUTPUT | cut -d'=' -f2)
28-
SERVICEOUTPUT=$(grep NOTIFY_SERVICEOUTPUT $OUTPUT | cut -d'=' -f2)
29-
HOSTOUTPUT=$(grep NOTIFY_HOSTOUTPUT $OUTPUT | cut -d'=' -f2)
30-
PREVIOUSHOSTHARDSHORTSTATE=$(grep NOTIFY_PREVIOUSHOSTHARDSHORTSTATE $OUTPUT | cut -d'=' -f2)
31-
HOSTSHORTSTATE=$(grep NOTIFY_HOSTSHORTSTATE $OUTPUT | cut -d'=' -f2)
32-
PREVIOUSSERVICEHARDSHORTSTATE=$(grep NOTIFY_PREVIOUSSERVICEHARDSHORTSTATE $OUTPUT | cut -d'=' -f2)
33-
SERVICESHORTSTATE=$(grep NOTIFY_SERVICESHORTSTATE $OUTPUT | cut -d'=' -f2)
34-
SHORTDATETIME=$(grep NOTIFY_SHORTDATETIME $OUTPUT | cut -d'=' -f2)
35-
HOST_ADDRESS_4=$(grep NOTIFY_HOST_ADDRESS_4 $OUTPUT | cut -d'=' -f2)
36-
HOST_ADDRESS_6=$(grep NOTIFY_HOST_ADDRESS_6 $OUTPUT | cut -d'=' -f2)
16+
CHAT_ID=${NOTIFY_PARAMETER_2}
3717

3818
# Create a MESSAGE variable to send to your Telegram bot
39-
MESSAGE="$HOSTNAME ($HOSTALIAS)%0A"
40-
MESSAGE+="$WHAT $NOTIFICATIONTYPE%0A%0A"
41-
if [[ $WHAT == "SERVICE" ]]; then
42-
MESSAGE+="$SERVICEDESC%0A"
43-
MESSAGE+="State changed from $PREVIOUSSERVICEHARDSHORTSTATE to $SERVICESHORTSTATE%0A"
44-
MESSAGE+="$SERVICEOUTPUT%0A"
19+
MESSAGE="${NOTIFY_HOSTNAME} (${NOTIFY_HOSTALIAS})%0A"
20+
MESSAGE+="${NOTIFY_WHAT} ${NOTIFY_NOTIFICATIONTYPE}%0A%0A"
21+
if [[ ${NOTIFY_WHAT} == "SERVICE" ]]; then
22+
MESSAGE+="${NOTIFY_SERVICEDESC}%0A"
23+
MESSAGE+="State changed from ${NOTIFY_PREVIOUSHOSTHARDSHORTSTATE} to ${NOTIFY_SERVICESHORTSTATE}%0A"
24+
MESSAGE+="${NOTIFY_SERVICEOUTPUT}%0A"
4525
else
46-
MESSAGE+="State changed from $PREVIOUSHOSTHARDSHORTSTATE to $HOSTSHORTSTATE%0A"
47-
MESSAGE+="$HOSTOUTPUT%0A"
26+
MESSAGE+="State changed from ${NOTIFY_PREVIOUSHOSTHARDSHORTSTATE} to ${NOTIFY_HOSTSHORTSTATE}%0A"
27+
MESSAGE+="${NOTIFY_HOSTOUTPUT}%0A"
4828
fi
49-
MESSAGE+="%0AIPv4: $HOST_ADDRESS_4 %0AIPv6: $HOST_ADDRESS_6%0A"
50-
MESSAGE+="$SHORTDATETIME"
29+
MESSAGE+="%0AIPv4: ${NOTIFY_HOST_ADDRESS_4} %0AIPv6: ${NOTIFY_HOST_ADDRESS_6}%0A"
30+
MESSAGE+="${NOTIFY_SHORTDATETIME}"
5131

5232
# Send message to Telegram bot
53-
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d chat_id=$CHAT_ID -d text="$MESSAGE" >> /dev/null
33+
curl -s -X POST "https://api.telegram.org/bot${TOKEN}/sendMessage" -d chat_id="${CHAT_ID}" -d text="${MESSAGE}" >> /dev/null
5434

5535
# End of script
5636
exit 0

0 commit comments

Comments
 (0)