CVE-2021-45232 Apache APISIX Dashboard 認證繞過漏洞分析
VSole2021-12-28 22:13:38
漏洞信息
Apache APISIX 是一個動態、實時、高性能的 API 網關,Apache APISIX Dashboard 使用戶可通過前端界面操作 Apache APISIX。
近日網上爆出在 Apache APISIX Dashboard v2.7-2.10版本中存在未授權訪問漏洞,攻擊者無需登錄就可以訪問某些接口,深入分析發現還可以RCE。
漏洞分析
可以直接采用docker進行安裝。Apache APISIX采用`droplet`進行鑒權處理,認證過程如下(`authentication.go`):

從上面定義來看,以`/apisix`開頭的URL,除了`/apisix/admin/tool/version`和`/apisix/admin/user/login`以外均需要認證,通過判斷HTTP Header中的`Authorization`來完成鑒權處理。
接下來分析一下路由信息:

注冊的`handler`包括:
route.NewHandler,ssl.NewHandler,consumer.NewHandler,upstream.NewHandler,service.NewHandler,schema.NewHandler,schema.NewSchemaHandler,healthz.NewHandler,authentication.NewHandler,global_rule.NewHandler,server_info.NewHandler,label.NewHandler,data_loader.NewHandler,data_loader.NewImportHandler,tool.NewHandler,plugin_config.NewHandler,migrate.NewHandler,proto.NewHandler,stream_route.NewHandler,
正常情況下利用`droplet`來對URL進行鑒權處理,與`authentication.go`中的`Handle`對應,比如`consumer`:

我們發現在某個`handler`中定義的路由沒有經過`droplet`處理:

存在認證繞過漏洞,無需登錄可直接訪問API接口。深入分析發現還可以RCE,這里就不放出來了。

修復方案

新版本將框架換成了`gin-gonic`,所有路由都要走`Authentication`進行處理。
VSole
網絡安全專家