rpPH4kQocMjkm2Ve/verify-lib

GitHub: rpPH4kQocMjkm2Ve/verify-lib

一个用于在 source 前验证 shell 库文件安全性的编译工具,通过多重检查防范符号链接逃逸、文件替换和目录劫持等攻击。

Stars: 1 | Forks: 0

# verify-lib [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b1c25b69a7045512.svg)](https://github.com/rpPH4kQocMjkm2Ve/verify-lib/actions/workflows/ci.yml) ![License](https://img.shields.io/github/license/rpPH4kQocMjkm2Ve/verify-lib) 在 source 之前验证 shell 库文件。编译后的二进制文件 —— 解决了从 shell 中验证 shell 库的引导问题。 ## 安装 ### 使用 gitpkg ``` gitpkg install verify-lib ``` ### AUR ``` yay -S verify-lib ``` ### 手动安装 ``` make build sudo make install ``` ## 用法 ``` verify-lib /usr/lib/gitpkg/common.sh /usr/lib/gitpkg/ verify-lib /usr/lib/atomic/common.sh /usr/lib/atomic/ verify-lib /usr/lib/foo/bar.sh ``` 成功时返回 0 并打印解析后的路径。 失败时返回 1 并将诊断信息输出到 stderr。 在脚本中: ``` _src() { local p; p=$(verify-lib "$1" "$2") && source "$p" || exit 1; } _src /usr/lib/gitpkg/common.sh /usr/lib/gitpkg/ ``` 省略时默认前缀为 `/usr/lib/`。 ## 检查项 | 检查项 | 威胁 | |-------|--------| | `realpath` 解析 | 符号链接逃逸 | | 路径前缀匹配 | source 预期目录之外的文件 | | 常规文件测试 | 设备/fifo/socket 替换 | | `0:0` 所有权 | 非特权文件替换 | | 无组/其他写入权限 | 未授权修改 | | 目录链所有权 | 父目录劫持 | | 世界可写目录上的粘滞位 | `/tmp` 类型的竞态攻击 | ## 依赖 - `gcc`, `make` ## 许可证 AGPL-3.0-or-later
标签:AUR, Bash, Cutter, DevSecOps, Git, Shell, Shell 脚本安全, Web报告查看器, 上游代理, 二进制发布, 子域名枚举, 完整性检查, 库文件验证, 开源工具, 引导程序问题, 提权防护, 文件系统安全, 权限检查, 竞态条件, 符号链接攻击, 系统安全, 编译型工具, 路径遍历防护, 软件识别