1. 漏洞原理
漏洞并不复杂,整个链也不长
在分析CodeQL Python 污点分析时候发现,有用到shared 的新模块typetracking。从前面Python 的Extractor 分析中,我们知道它的DB 内是没有类型信息的,没有类型信息是怎么做污点呢?
Java 是在编译的时候创建的DB,这一过程中可以拿到了AST 节点对应的类型信息,例如call 节点函数信息,可以直接关联callable,知道调的是哪个函数。但是纯AST 要怎么做?
联想之前做Java 反射Patch 的时候,印象中也需要用到类型跟踪,但是是自己实现的,改动颇大,不知道这个typetracking 是否能够更优雅的解决,分析下。
最近定位python codeql 的一个cve 复现,发现涉及到extractor 的逻辑,正好之前也有跟踪过java 的经验,应该大差不差,记录下。
https://github.com/github/codeql/blob/main/python/extractor/README.md#2-The-actual-Python-extractor
more >>在官方漏洞报告中,说CVE-2022-43396是CVE-2022-24697的绕过。实际情况却是:两个漏洞均是发送在 Kylin 的 cube build 功能中,但CVE-2022-24697是参数可控;CVE-2022-43396是命令可控。
下文以CVE-2022-24697 为例,主要目的是跟踪下数据流,看看能否用CodeQL 复现。
影响版本:
Kylin 2.x & Kylin 3.x & 4.x should upgrade to 4.0.2
同前文,不赘述
more >>CVE-2021-45456 漏洞是rest api 接口参数project 存在命令注入,CVE-2022-44621 漏洞是jobid 参数存在命令注入,原理相似,这里以分析CVE-2021-45456 为例,跟踪下这两个漏洞。
影响版本:4.0.0
Mitigation:
Users of Kylin 4.0.0 should upgrade to 4.0.1 or apply patch https://github.com/apache/kylin/pull/1781.
Credit:
These issues were discovered and reported by GHSL team member @pwntester (Alvaro Muñoz).
描述:project 参数存在命令拼接
1 | docker pull apachekylin/apache-kylin-standalone:4.0.0 |
很简单的命令拼接漏洞,如下
1 | /** |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true