Skip to content

Commit 579bbb0

Browse files
committed
Release v2025.10.22.1
1 parent 683e9a2 commit 579bbb0

10 files changed

Lines changed: 122 additions & 14 deletions

File tree

_data/authors.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,31 @@
33

44
"Geng Yang":
55
name: "Geng Yang"
6-
bio: "Co-founder & CEO, Zast.ai. Security research expert focused on AI-powered vulnerability detection."
7-
avatar: "/assets/img/logo-single.png" # You can add individual author avatar later
6+
bio: "Co-founder & CEO, ZAST.AI"
7+
#avatar: "/assets/img/logo-single.png" # You can add individual author avatar later
88
location: "Seattle, WA"
99
links:
10-
- label: "zast.ai"
10+
- label: "ZAST.AI"
1111
icon: "fas fa-fw fa-link"
12-
url: "https://zast.ai"
12+
url: "https://ZAST.AI"
1313
- label: "X (Twitter)"
1414
icon: "fab fa-fw fa-x-twitter"
1515
url: "https://twitter.com/zast_ai"
1616
- label: "GitHub"
1717
icon: "fab fa-fw fa-github"
18-
url: "https://github.com/zast-ai/zast"
19-
"Zast.ai Team":
20-
name: "Zast.ai Team"
18+
url: "https://github.com/ZAST.AI/zast"
19+
"ZAST.AI Team":
20+
name: "ZAST.AI Team"
2121
bio: "AI agent that can identify vulnerabilities, and verify exploitability with zero false positives"
22-
avatar: "/assets/img/logo-single.png" # You can add individual author avatar later
22+
#avatar: "/assets/img/logo-single.png" # You can add individual author avatar later
2323
location: "Seattle, WA"
2424
links:
25-
- label: "zast.ai"
25+
- label: "ZAST.AI"
2626
icon: "fas fa-fw fa-link"
27-
url: "https://zast.ai"
27+
url: "https://ZAST.AI"
2828
- label: "X (Twitter)"
2929
icon: "fab fa-fw fa-x-twitter"
30-
url: "https://twitter.com/zast_ai"
30+
url: "https://twitter.com/ZAST.AI"
3131
- label: "GitHub"
3232
icon: "fab fa-fw fa-github"
33-
url: "https://github.com/zast-ai"
33+
url: "https://github.com/ZAST.AI"

_data/authors.yml.bak

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Authors configuration for individual posts
2+
# Usage: Set author: "geng-yang" in post front matter
3+
4+
"Geng Yang":
5+
name: "Geng Yang"
6+
bio: "Co-founder & CEO, Zast.ai. Security research expert focused on AI-powered vulnerability detection."
7+
avatar: "/assets/img/logo-single.png" # You can add individual author avatar later
8+
location: "Seattle, WA"
9+
links:
10+
- label: "zast.ai"
11+
icon: "fas fa-fw fa-link"
12+
url: "https://zast.ai"
13+
- label: "X (Twitter)"
14+
icon: "fab fa-fw fa-x-twitter"
15+
url: "https://twitter.com/zast_ai"
16+
- label: "GitHub"
17+
icon: "fab fa-fw fa-github"
18+
url: "https://github.com/zast-ai/zast"
19+
"Zast.ai Team":
20+
name: "Zast.ai Team"
21+
bio: "AI agent that can identify vulnerabilities, and verify exploitability with zero false positives"
22+
avatar: "/assets/img/logo-single.png" # You can add individual author avatar later
23+
location: "Seattle, WA"
24+
links:
25+
- label: "zast.ai"
26+
icon: "fas fa-fw fa-link"
27+
url: "https://zast.ai"
28+
- label: "X (Twitter)"
29+
icon: "fab fa-fw fa-x-twitter"
30+
url: "https://twitter.com/zast_ai"
31+
- label: "GitHub"
32+
icon: "fab fa-fw fa-github"
33+
url: "https://github.com/zast-ai"

_includes/masthead.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<div class="masthead__menu">
66
<nav id="site-nav" class="greedy-nav">
77
{% unless logo_path == empty %}
8-
<a class="site-logo" href="{{ '/' | relative_url }}"><img src="{{ logo_path | relative_url }}" alt="{{ site.masthead_title | default: site.title }}"></a>
8+
<a class="site-logo" href="{{ 'https://zast.ai' }}"><img src="{{ logo_path | relative_url }}" alt="{{ site.masthead_title | default: site.title }}"></a>
99
{% endunless %}
10-
<a class="site-title" href="{{ '/' | relative_url }}">
10+
<a class="site-title" href="{{ 'https://zast.ai' }}">
1111
{{ site.masthead_title | default: site.title }}
1212
{% if site.subtitle %}<span class="site-subtitle">{{ site.subtitle }}</span>{% endif %}
1313
</a>
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: 'Defeating "Bandaid Solutions"'
3+
description: "A case study demonstrating how ZAST.AI effectively detects and defeats various temporary security fixes, including Base64 encoding and prefix matching obfuscation techniques, to uncover deep command injection vulnerabilities."
4+
keywords: "ZAST.AI, command injection, security testing, vulnerability detection, bandaid solutions, Base64 encoding, prefix matching, white-box testing, black-box testing, AI security"
5+
author: "Geng Yang"
6+
date: 2025-10-21
7+
categories: ["Security Research", "Vulnerability Analysis", "AI Security"]
8+
tags:
9+
[
10+
"ZAST.AI",
11+
"Command Injection",
12+
"Security Testing",
13+
"Vulnerability Detection",
14+
"AI Security"
15+
]
16+
17+
18+
---
19+
20+
21+
22+
### Introduction
23+
24+
A recent client test on ZAST.AI yielded a notable case regarding its ability to assess command injection vulnerabilities, including sophisticated variants. With their permission, we would like to share the findings in this case study.
25+
26+
### Vulnerability Assessed by ZAST.AI - Command Injection
27+
28+
Let's see the 1st vulnerability report:
29+
30+
<center><img src="{{'/assets/img/Defeating-Bandaid-Solutions/1ZAST-AI.png' | relative_url }}" alt="1ZAST-AI" width="750" height="auto"></center>
31+
32+
<u>The taint source and taint sink are identified, along with a POC that shows a malicious payload executing a shell command.</u>
33+
34+
To test ZAST.AI’s abilities, they chose to add Base64 encoding instead of fully fixing the vulnerability. They then resubmitted the updated version for evaluation. Let’s see what happens next.
35+
36+
### 1st Patch - Base64 Encoding
37+
38+
See below for the second report:
39+
40+
<center><img src="{{'/assets/img/Defeating-Bandaid-Solutions/2ZAST-AI.png' | relative_url }}" alt="2ZAST-AI" width="750" height="auto"></center>
41+
42+
<u>The taint source remained the same in both reports, indicating that the vulnerability was unchanged. In the taint sink, it shows that Base64 encoding is applied.</u>
43+
44+
<u>The POC indicates a request with an encoded shell command that bypasses superficial checks. Despite the encoding, the application processes the input without proper validation, allowing the command to execute.</u>
45+
46+
The results caught their interest, and they were a bit amazed by ZAST.AI’s dynamic assessment capabilities. They decided to try another method of obscurity to make detection nearly impossible and then ran the assessment again.
47+
48+
### 2nd Patch - Prefix Matching
49+
50+
Let's see how ZAST.AI works this time:
51+
52+
<center><img src="{{'/assets/img/Defeating-Bandaid-Solutions/3ZAST-AI.png' | relative_url }}" alt="3ZAST-AI" width="750" height="auto"></center>
53+
54+
<u>The taint source stays the same, so the vulnerability wasn't fixed. In the taint sink, the code implemented a prefix validation for the Base64-decoded command, allowing execution only if the command starts with "secret." It reduces command injection risks by validating the input and using</u> `.substring(6)` <u>to remove the prefix, ensuring only specific commands execute.</u>
55+
56+
<u>Again, the POC validate the command injection vulnerability by sending a Base64-encoded shell command with a prefix match to a specified URL. By combining the prefix "secret" with the command, it tests whether the server is susceptible to remote code execution. Additionally, it uses HTTP headers to mimic legitimate requests, revealing potential security weaknesses in the application's input handling.</u>
57+
58+
The client reviewed the results and discussed the findings with us:
59+
"We see that [ZAST.AI](https://zast.ai/)'s analysis worked effectively to locate the issue."
60+
"Yes, it clearly processed our obfuscated inputs and still flagged vulnerability."
61+
"We noticed its method is quite distinct from conventional testing."
62+
"From the results, that distinct method seems to find issues that standard approaches can overlook."
63+
"It certainly points to a more modern way of handling vulnerability detection."
64+
65+
It was encouraging to receive this feedback from our client, which demonstrates the system functioning as intended. We also took the opportunity to provide some suggestions for fixing the vulnerability.
66+
67+
### ZAST.AI's Edge in Vulnerability Assessment
68+
69+
From this case, we can see that after two patches, the vulnerability has become much harder to spot. Yet, ZAST.AI was still able to uncover and confirm it using its advanced large language model. Like our client said, ZAST.AI truly stands out from traditional methods like black-box and white-box testing.
70+
71+
While black-box testing examines the system from an external perspective and relies on input/output, it often suffers from limited coverage, as it only tests predefined scenarios based on expected inputs. This approach can overlook vulnerabilities that occur under unexpected conditions or rare input combinations, making it less effective in identifying complex security flaws. In contrast, white-box testing inspects the internal workings of the code, providing a more thorough analysis but requiring extensive knowledge of the system architecture.
72+
73+
ZAST.AI, on the other hand, analyzes taint sinks to locate taint sources and then leverages its LLM to generate POC exploits and verify their correctness.
74+
75+
Visit [ZAST.AI](https://zast.ai/) to explore its capabilities for your own systems. We welcome your vulnerability case studies and remediation insights. Also, stay tuned for our upcoming releases, including Python language support and IDE extensions.
265 KB
Loading
319 KB
Loading
270 KB
Loading
387 KB
Loading
275 KB
Loading
333 KB
Loading

0 commit comments

Comments
 (0)