首页 网络安全 正文

serverless-localstack命令注入漏洞CVE-2026-16763

摘要

栋科技漏洞库关注到 serverless-localstack 存在的操作系统命令注入漏洞,该漏洞现已被追踪为CVE-2026-16763,CVSS 3.1评分 6.5。

serverless-localstack是Serverless Framework的官方配套插件,它主要用来打通Serverless开发工具与 LocalStack 本地 AWS 模拟器。

一、基本情况

serverless-localstack可以实现AWS Serverless项目全本地离线开发、部署、调试,无需真实 AWS 账号、不上传云端资源,零云成本。

serverless-localstack全程本地 Docker运行,不会产生 AWS 计费、不会污染线上开发环境,本地部署毫秒级完成,插件不能单独使用。

Microweber CMS路径穿越漏洞CVE-2026-65694

栋科技漏洞库关注到 serverless-localstack 存在的操作系统命令注入漏洞,该漏洞现已被追踪为CVE-2026-16763,CVSS 3.1评分 6.5。

二、漏洞分析

CVE-2026-16763是serverless-localstack插件安全漏洞,启用自动启动并提供恶意配置时,攻击者可导致插件执行任意操作系统命令。

具体来说,serverless-localstack 1.0 至1.4.0 的 Configuration Handler 在 src/index.js 的 startLocalStack 函数中,

直接将custom.localstack.docker.compose_file插入docker-compose命令字符串,

未进行参数隔离或转义,导致本地项目配置或CI配置中的Shell元字符被解释并执行,该漏洞攻击面范围较小,但利用成功后危害严重。

当开启自动启动功能,插件通过 Docker Compose 启动 LocalStack 时,

serverless-localstack 插件会将配置项 custom.localstack.docker.compose\_file 的值直接传入 shell 命令执行。

官方文档中说明 docker.compose\_file 为可选的 Docker Compose 文件路径配置项:

custom:
  localstack:
    autostart: true
    docker:
      compose_file: /home/localstack_compose.yml

但在src/index.js文件中,该配置值被直接拼接进命令字符串:

exec(`docker-compose -f ${this.config.docker.compose_file} up -d`)

由于该参数未做转义处理,也未以参数数组形式传入命令,若 Compose 文件路径中包含 Shell 元字符,即可额外执行任意系统命令。

三、POC概念验证

(一)测试环境:

serverless-localstack@1.4.0

Node.js 24.10.0

macOS / POSIX 类 Shell

(二)复现步骤

1、新建最简项目:

rm -rf /tmp/sls-localstack-public-poc /tmp/sls-localstack-aci
mkdir -p /tmp/sls-localstack-public-poc
cd /tmp/sls-localstack-public-poc

npm init -y
npm i serverless-localstack@1.4.0

2、创建poc.js:

管理员已设置登录后刷新可查看

运行:

node poc.js

实际结果:未做转义处理的 compose_file 配置值被直接嵌入Shell命令中执行:

[exec] docker ps
[sls] Starting LocalStack using the provided docker-compose file. This can take a while.
[exec] docker-compose -f x; touch /tmp/sls-localstack-aci; # up -d
[exec] docker ps
marker exists: true

标记文件成功生成,证明漏洞可实现任意命令执行。

(三)预期效果

custom.localstack.docker.compose\_file 配置项应仅作为 Docker Compose 文件路径处理,路径内的 Shell 元字符不得触发命令执行。

(四)修复建议

禁止通过配置值拼接 Shell 命令字符串,改用参数数组形式调用:

execFile ('docker-compose', \['-f', this.config.docker.compose\_file, 'up', '-d'\])

或使用 spawn、execa 并设置 shell: false。

同时检查其余 Docker 相关命令拼接逻辑,例如 docker network connect "${this.config.networks \[network\]}" ${containerID} 这类写法。

(五)漏洞危害

若攻击者能够篡改项目的 serverless.yml 文件或 CI 配置,且项目启用 serverless-localstack 插件并开启自动启动功能,

攻击者即可以开发者或 CI 运行账号的权限执行任意系统命令。

四、影响范围

serverless-localstack < 1.4.1

五、修复建议

serverless-localstack ≥ 1.4.1

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接