Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
920d528
rpm analyzier mile stone one
RedTanny Apr 15, 2026
b5f78d5
start prompt the identify keywords
RedTanny Apr 19, 2026
ac1ad18
Identiy sub graph flow
RedTanny Apr 19, 2026
fc50fcc
chunk and parse code file and index it to the lexical search
RedTanny Apr 20, 2026
13e2f5f
milestone 1 locate vulnerability place
RedTanny Apr 20, 2026
196508b
locate mile stone 2
RedTanny Apr 23, 2026
4aac49f
verify step 1
RedTanny Apr 23, 2026
0590445
clear labels
RedTanny Apr 25, 2026
fb360c3
last changes
RedTanny Apr 27, 2026
994c5a8
generating report for L1 agent
RedTanny Apr 28, 2026
06b9a91
fix L1 report
RedTanny Apr 28, 2026
9c37e84
update prompt
RedTanny Apr 28, 2026
d9c7da5
Save changes before change in design
RedTanny Apr 30, 2026
809c9af
redesign: preprocess node
RedTanny Apr 30, 2026
49fb9ad
save work
RedTanny May 1, 2026
189dc44
first React agent loop work
RedTanny May 2, 2026
1408ea4
improve report for downstream L1
RedTanny May 2, 2026
cfc9d44
before report change
RedTanny May 3, 2026
6cc08a8
fix report
RedTanny May 3, 2026
7ff77ed
cleanup and fix bug
RedTanny May 3, 2026
9e6102d
add observation logic
RedTanny May 4, 2026
d793812
observation node part2
RedTanny May 4, 2026
d1f782e
Integration L2 with flow
RedTanny May 4, 2026
91e8ae1
skeleton L2 agent
RedTanny May 5, 2026
879d9f0
save cwe-id and add hardening db file
RedTanny May 5, 2026
ef0d6aa
Imp preprocess data
RedTanny May 5, 2026
728406d
force node to code agent
RedTanny May 5, 2026
e626ccd
L2 Agent build ,before loop
RedTanny May 5, 2026
38e580e
not working yet
RedTanny May 6, 2026
33bc8e2
E2E - with bugs
RedTanny May 6, 2026
cefc831
new api schema for rpm checker
RedTanny May 7, 2026
9adec40
save before big change
RedTanny May 7, 2026
2c0c457
add vulnerability intel
RedTanny May 7, 2026
da92be1
L2 build agent improvments
RedTanny May 9, 2026
9ca31ea
filter binary file
RedTanny May 10, 2026
a6919ff
fix status of report
RedTanny May 10, 2026
c06108e
check for package name in cve matches package target
RedTanny May 10, 2026
4505954
add Intel calculation of score and reports
RedTanny May 10, 2026
4c1842f
clear summary report
RedTanny May 10, 2026
c10a435
clean report summary executive
RedTanny May 11, 2026
a30e5f6
update report structure
RedTanny May 11, 2026
af106d8
report use case upstream find patch to use
RedTanny May 11, 2026
d91858b
update rebase to fetch patch from github
RedTanny May 12, 2026
3720d6d
missing file
RedTanny May 13, 2026
f484812
send failure to failed node and add url to report
RedTanny May 13, 2026
0417b84
grep tool support multi pattern query and fix osv retrive
RedTanny May 13, 2026
f1dabec
fix extract of tar formats
RedTanny May 14, 2026
19c587e
fix tool make them more accurate
RedTanny May 14, 2026
a064735
fix compile features
RedTanny May 14, 2026
a79de7e
return default iteration
RedTanny May 14, 2026
0974862
add to search ubuntu intel before osv
RedTanny May 16, 2026
429bbf9
improve harvest data
RedTanny May 16, 2026
9d96d03
not compile use case
RedTanny May 17, 2026
1f0c835
fix identification check product before version relation
RedTanny May 17, 2026
dc6fa0a
add test identifier
RedTanny May 17, 2026
b44ddda
fix identification report more detail
RedTanny May 17, 2026
b2b8654
fix tool
RedTanny May 17, 2026
2ed7f08
update openai schema
RedTanny May 17, 2026
595e79e
Code review: split prompts to a seperated file
RedTanny May 17, 2026
09376d7
code review NEVRA
RedTanny May 18, 2026
78a0c3a
Support multiple architectures for the same NVR by storing build logs
RedTanny May 19, 2026
095c020
phase 1 do not fail flow L2 agent if no build log file
RedTanny May 19, 2026
eba4ca9
add detail field
RedTanny May 21, 2026
64435a2
support kernel packages
RedTanny May 22, 2026
3cb21b7
improve report format for checker
RedTanny May 23, 2026
1430391
add samba support
RedTanny May 24, 2026
eb93eed
vulnerability intel sanitizer
RedTanny May 25, 2026
12d05cf
add support for external user without vpn need
RedTanny May 26, 2026
ad59443
fixes prompt
RedTanny May 27, 2026
0d251f1
missing pkg for image
RedTanny May 27, 2026
d2143bc
prune message
RedTanny May 27, 2026
76be4af
add cluster config support
RedTanny May 28, 2026
9267bef
review fixes
RedTanny May 28, 2026
10e888f
comment cleanup
RedTanny May 28, 2026
1b1f468
fix
RedTanny May 28, 2026
ffbe19f
support verify download brew
RedTanny May 28, 2026
e00f027
disable js avoid errors segmentation , fix identification logic tree …
RedTanny May 31, 2026
0bc813d
fix identification and support chromium patch
RedTanny May 31, 2026
b6c7b81
code review
RedTanny May 31, 2026
9583772
update identify tests
RedTanny May 31, 2026
45db901
improve performance and LLM conclusion vulnerability
RedTanny Jun 1, 2026
d4042fc
fix review clean api
RedTanny Jun 1, 2026
c6c47f4
remove deadcode
RedTanny Jun 1, 2026
b01ac20
codereview: fix location of import
RedTanny Jun 1, 2026
dd88e2c
codeReview: remove wrapper
RedTanny Jun 1, 2026
b70ec37
CodeReview fix message
RedTanny Jun 1, 2026
6a93379
clean python cache
RedTanny Jun 3, 2026
7cd7124
clean python cache2
RedTanny Jun 3, 2026
1047d6a
disable tests temp
RedTanny Jun 3, 2026
de8c3b6
enable tests
RedTanny Jun 3, 2026
4cd11c7
UI now takes the pack url from artifacts.source_url the source not ne…
RedTanny Jun 3, 2026
4a3e9d8
CodeReview default for ssl verify true
RedTanny Jun 3, 2026
c229af7
CodeReview: safe path for readfile
RedTanny Jun 3, 2026
65decc3
CodeReveiw: safe path in _init_
RedTanny Jun 3, 2026
d602b77
CodeReview: add documentation for build-essential
RedTanny Jun 3, 2026
9162352
Bug fix find patch in upstream fixed rpm even if no cve number on fil…
RedTanny Jun 4, 2026
935538d
CodeReview update doc for installing bsdtar
RedTanny Jun 4, 2026
f7ebf41
fix: handle KeyError in Python parser for third-party packages
RedTanny Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .tekton/on-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ spec:
# This is handled in the Makefile's lint-pr target and should be reverted after migration.
make lint-pr TARGET_BRANCH=$TARGET_BRANCH_NAME


print_banner "RUNNING UNIT TESTS"
make test-unit PYTEST_OPTS="--log-cli-level=DEBUG"

Expand Down
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,13 @@ ENV PYTHONDONTWRITEBYTECODE=1
ENV AGENT_GIT_COMMIT=${AGENT_GIT_COMMIT}
ENV AGENT_GIT_TAG=${AGENT_GIT_TAG}

# System dependencies:
# - build-essential: Required for compiling Python packages with native C extensions
# (e.g., psutil, cryptography, cffi) during `uv sync`. Also needed for libkrb5-dev.
# - libarchive-tools: Provides bsdtar for extracting RPM/SRPM archives in the checker
# - libkrb5-dev: Kerberos headers for gssapi Python package (Brew authentication)
RUN apt-get update && apt-get install -y \
build-essential \
Comment thread
zvigrinberg marked this conversation as resolved.
ca-certificates \
curl \
git \
Expand All @@ -42,6 +48,7 @@ RUN apt-get update && apt-get install -y \
libarchive-tools \
xz-utils \
libatomic1 \
libkrb5-dev \
Comment thread
zvigrinberg marked this conversation as resolved.
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ The current default embedding NIM model is `nv-embedqa-e5-v5`, which was selecte

* [git](https://git-scm.com/)
* [git-lfs](https://git-lfs.com/)
* bsdtar (from libarchive) - Used for extracting RPM source archives. Install via `apt install libarchive-tools` (Debian/Ubuntu) or `dnf install bsdtar` (Fedora/RHEL).
* Since the workflow uses [NVIDIA NeMo Agent Toolkit](https://docs.nvidia.com/aiqtoolkit), the [NeMo Agent toolkit requirements](https://docs.nvidia.com/aiqtoolkit/latest/quick-start/installing.html#prerequisites) also need to be installed.

### Obtain API keys
Expand Down
42 changes: 42 additions & 0 deletions kustomize/base/exploit-iq-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ functions:
Code Keyword Search:
_type: lexical_code_search
top_k: 5
Source Grep:
_type: source_grep
base_checker_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}checker
max_results: 50
context_lines: 2
CVE Web Search:
_type: serp_wrapper
max_retries: 5
Expand Down Expand Up @@ -156,6 +161,38 @@ functions:
generate_intel_score: true
intel_low_score: 51
insist_analysis: false
cve_source_acquisition:
_type: cve_source_acquisition
base_git_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}git
base_pickle_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}pickle
base_rpm_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}rpms
base_checker_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}checker
rpm_user_type: ${RPM_USER_TYPE:-internal}
cve_checker_segmentation:
_type: cve_checker_segmentation
base_checker_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}checker
base_code_index_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}code_index
cve_package_code_agent:
_type: cve_package_code_agent
llm_name: cve_agent_executor_llm
base_checker_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}checker
base_code_index_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}code_index
rpm_user_type: ${RPM_USER_TYPE:-internal}
tool_names:
- Source Grep
- Code Keyword Search
cve_checker_report:
_type: cve_checker_report
llm_name: cve_agent_executor_llm
base_checker_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}checker
cve_build_agent:
_type: cve_build_agent
llm_name: cve_agent_executor_llm
base_checker_dir: ${EXPLOIT_IQ_DATA_DIR:-/exploit-iq-data/}checker
max_iterations: 10
tool_names:
- Source Grep
- Code Keyword Search
health_check:
_type: health_check

Expand Down Expand Up @@ -248,6 +285,11 @@ workflow:
cve_summarize_name: cve_summarize
cve_justify_name: cve_justify
cve_output_config_name: cve_http_output
cve_source_acquisition_name: cve_source_acquisition
cve_checker_segmentation_name: cve_checker_segmentation
cve_package_code_agent_name: cve_package_code_agent
cve_checker_report_name: cve_checker_report
cve_build_agent_name: cve_build_agent

eval:
general:
Expand Down
2 changes: 2 additions & 0 deletions kustomize/base/exploit_iq_service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ spec:
value: "True"
- name: EXPLOIT_IQ_DATA_DIR
value: /exploit-iq-data/
- name: RPM_USER_TYPE
value: "internal"
- name: NAMESPACE
valueFrom:
fieldRef:
Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ dependencies = [
"litellm<=1.75.8",
"csaf-tool==0.3.2",
"jsonschema>=4.0.0,<5.0.0",
"koji",
"unidiff>=0.7.5",
]
requires-python = ">=3.11,<3.13"
description = "NVIDIA AI Blueprint: Vulnerability Analysis for Container Security"
Expand Down
14 changes: 14 additions & 0 deletions src/exploit_iq_commons/data/hardening_kb/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
Loading