设备环境:fnOS 1.1.15
BUG现象:
有留意到当前的 系统文件修复功能通过执行 fixapt-121.sh脚本进行修复。
尽管 liveupdate下载 fixapt-121.sh后对该文件完整性进行了校验。但脚本本身存在不安全的隐患,具体问题代码如下,省略无关部分,129行开始
# 通过服务端文件修复info目录
FILE_COUNT=$(find "/var/lib/dpkg/info" -type f | wc -l)
ZIP_URL="http://static2.fnnas.com/aptfix/info.zip"
ZIP_FILE=/tmp/info.zip
if [ "$FILE_COUNT" -lt 1000 ]; then
if ! curl -fL "$ZIP_URL" -o "$ZIP_FILE"; then
echo "ERROR: download failed"
exit 1
fi
TMP_DIR="/var/lib/dpkg/info_new"
rm -rf "$TMP_DIR"
mkdir -p "$TMP_DIR"
if ! unzip -q "$ZIP_FILE" -d "$TMP_DIR"; then
exit 1
fi
mv /var/lib/dpkg/info /var/lib/dpkg/info_tmp
mv /var/lib/dpkg/info_new /var/lib/dpkg/info
cp -a /var/lib/dpkg/info_tmp/ /var/lib/dpkg/info/
rm -rf /var/lib/dpkg/info_tmp
fi
代码地址:
http://static2.fnnas.com/aptfix/fixapt-121.sh
具体潜在的安全问题是,ZIP_URL采用http地址有被中间人攻击的潜在风险,在解压zip包前没有对zip包的完整性进行检查,恶意构造的zip包可能包含恶意脚本,或者通过zip包文件的路径穿越在进行攻击。
希望能在下载后进行完整性校验,尽量避免安全风险,谢谢。
出现频率:影响当前逻辑
联系方式:回帖