mlab-sh/mlab-cve

GitHub: mlab-sh/mlab-cve

mlab-cve 是一个 Rust 编写的 CVE 漏洞搜索命令行工具,简化漏洞信息获取和管理。

Stars: 4 | Forks: 0

# mlab-cve 一个轻量、快速的 Rust 命令行工具,可直接在终端中通过 [vuln.mlab.sh](https://vuln.mlab.sh) 搜索 CVE 漏洞。 ``` ┳┳┓┓ ┏┓┳┓ ┏┓┓ ┏┓ ┃┃┃┃ ┣┫┣┫───┃ ┃┃ ┣ ┛ ┗┗┛┛┗┻┛ ┗┛┗┛┗┛ vuln.mlab.sh client ``` - 🔎 全文搜索 + 多维度筛选(严重性、日期范围、精确匹配) - 🆕 最新发布的 40 条 CVE - 📄 详细信息:CVSS 向量分解、EPSS、CISA KEV、CWE、受影响产品、参考链接 - 🎨 彩色输出(严重 / 高危 / 中危 / 低危) - 📦 `--json` 标志,便于通过管道传入 `jq`、脚本、仪表盘等 - 🦀 单一静态二进制文件,无运行时依赖 ## 安装说明 ### 通过发布版本 从 [发布页面](../../releases) 获取适用于您平台的预编译二进制文件: | 平台 | 目标三元组 | | -------------------- | ------------------------------ | | macOS (Apple Silicon) | `aarch64-apple-darwin` | | Linux x86_64 | `x86_64-unknown-linux-gnu` | | Linux ARM64 | `aarch64-unknown-linux-gnu` | 然后执行: ``` tar -xzf mlab-cve--.tar.gz chmod +x mlab-cve sudo mv mlab-cve /usr/local/bin/ ``` ### 通过源码编译 您需要近期的稳定版 Rust 工具链(≥ 1.74)。可通过 [rustup](https://rustup.rs/) 安装。 ``` git clone https://github.com/mlab-sh/mlab-cve.git cd mlab-cve cargo build --release ./target/release/mlab-cve --help ``` 将其安装到您的 `PATH` 中: ``` cargo install --path . ``` ## 本地构建(速查手册) ``` # 调试构建(快速编译) cargo build # 发布构建(优化、剥离符号) cargo build --release # 无需安装运行 cargo run -- latest # 带参数运行 cargo run -- search openssl --severity high # 检查 / 代码分析 cargo check cargo clippy --all-targets -- -D warnings cargo fmt ``` 编译后的二进制文件位于 `target/release/mlab-cve`。 ## 使用方法 ``` mlab-cve [OPTIONS] ``` 全局标志: | 标志 | 说明 | | ---------------- | ------------------------------ | | `--json` | 输出原始 JSON 而非美化格式。 | | `--no-banner` | 不打印 ASCII 横幅。 | | `-h, --help` | 显示帮助信息。 | | `-V, --version` | 显示版本信息。 | ### 命令 #### `latest` —— 最近的 40 条 CVE ``` mlab-cve latest ``` #### `search` —— 关键词搜索 ``` mlab-cve search openssl mlab-cve search log4j --severity critical --limit 10 mlab-cve search "remote code execution" --from 2024-01-01 --to 2024-12-31 mlab-cve search CVE-2024-3094 --exact ``` 选项: | 标志 | 默认值 | 说明 | | -------------------- | ------ | ------------------------------------- | | `-p, --page ` | `0` | 从 0 开始的页码索引 | | `-l, --limit ` | `20` | 每页结果数(最大 100) | | `-s, --severity` | — | `critical` / `high` / `medium` / `low` | | `--from ` | — | 发布日期下限 | | `--to ` | — | 发布日期上限 | | `-x, --exact` | 关闭 | 精确匹配而非模糊匹配 | #### `show` —— 显示单个 CVE 的完整详情 ``` mlab-cve show CVE-2024-3094 mlab-cve --json show CVE-2024-3094 | jq '.cvss_score, .epss_score' ``` ### 管道传输 JSON ``` mlab-cve --json search openssl --severity critical --limit 50 \ | jq -r '.cves[] | [.id, .cvss_score, .epss_score] | @tsv' ``` ## 示例 过去一周内的最新严重 CVE: ``` mlab-cve search "" --severity critical --from "$(date -v -7d +%F)" ``` 涉及 Apache 的最常被利用的(CISA KEV)条目: ``` mlab-cve --json search apache --limit 100 \ | jq '.cves[] | select(.in_kev) | .id' ``` ## API 参考 此客户端与公共 JSON API 通信,其文档位于 `https://vuln.mlab.sh`。 使用的端点: - `GET /api/v1/cve` —— 搜索 - `GET /api/v1/cve/latest` —— 最新 40 条 - `GET /api/v1/cve/{ID}` —— 详情 无需认证,无 API 密钥。所有端点均有服务端缓存。 ## 发布 / CI GitHub Actions 为以下平台构建并发布二进制文件: - macOS ARM64 (`aarch64-apple-darwin`) - Linux x86_64 (`x86_64-unknown-linux-gnu`) - Linux ARM64 (`aarch64-unknown-linux-gnu`) 当推送匹配 `Cargo.toml` 中版本号的标签时,将自动创建一个发布版本。要进行发布: ``` # 首先在 Cargo.toml 中提升版本号,然后: VERSION=$(grep -m1 '^version' Cargo.toml | cut -d'"' -f2) git tag "v$VERSION" git push origin "v$VERSION" ``` 此工作流也可从 Actions 标签页手动触发;它会读取 `Cargo.toml` 中的版本号,如果不存在 `v` 标签则会创建。 ## 许可证 MIT 许可证 —— 详见 [LICENSE](LICENSE)。
标签:AES-256, API安全, CISA KEV, CVE搜索, CVSS, EPSS, GPT, JSON输出, Rust, vuln.mlab.sh客户端, 全文搜索, 分面搜索, 可视化界面, 安全扫描, 开源CLI, 彩色输出, 时序注入, 漏洞管理, 漏洞评估, 漏洞详情, 终端工具, 网络安全, 网络流量审计, 通知系统, 隐私保护, 静态二进制