ENES DENIZ · OPEN SOURCE AND TECHNICAL PUBLICATIONS
Open-source work and technical records.
Open-source contributions, datasets, and technical reports are presented with direct sources. Upstream work is traceable through pull requests, merge commits, dates, problems solved, and technical outcomes.
Open or under-review work is not presented as a merged contribution.
Open-Source Contributions
Records are generated from one canonical data file. “Merged” is used only after the upstream pull request state and merge commit are verified.
The project lacked schema-conformant Turkish cases with traceable provenance for evaluating multilingual prompt-injection and data-extraction behavior.
Technical change
Added 300 cases adapted from the AltaySec v0.2 source as individual JSON records with a deterministic manifest, DSGAI mappings, anonymization changes, and record-level hashes and provenance.
Upstream result
The contribution was merged upstream with schema, integrity, canonical-mapping, and duplicate checks included in the package.
02
MERGED UPSTREAM
GenAI Red Team Lab · PR #50
System reconnaissance for authorized GenAI assessments
There was no shared module for producing repeatable, reviewable system reconnaissance before exploitation.
Technical change
Added 24 English/Turkish probes across nine categories, conservative response classification, evidence-linked JSONL and Markdown reports, filters, dry runs, and error isolation.
Upstream result
The contribution was merged upstream and closed issue #34; labels were designed as triage signals for human review, not automated vulnerability verdicts.
The hardening was merged upstream. Focused regression coverage and repository quality gates passed; a full Podman/Ollama campaign remained outside the validation boundary.
Security teams lacked a practical starting point for mapping AI products as systems of data, prompts, retrieval, tools, identities, and conventional infrastructure—not just models.
Technical change
Added an inventory-first primer mapping three AI delivery models, six lifecycle stages, typical artifacts, responsibilities, and security entry points.
Upstream result
The contribution was merged upstream and the primer went live on the OWASP AI Exchange, closing issue #182.
Goal-integrity regressions could not record a deterministic goal event without inferring intent from model output.
Technical change
Added explicit goal-event support across adapter, runner, CLI, and Python API paths; rejected blank or out-of-context use; preserved existing trace shape when disabled.
Upstream result
The contribution was merged upstream and closed issue #94. The design does not infer intent from model output, tool calls, or metadata.
06
MERGED UPSTREAM
OWASP Agent Security Regression Harness · PR #158
Capturing LangGraph update streams as security evidence
Node updates from synchronous LangGraph runs could not be preserved as inspectable regression evidence without disturbing the default invoke path.
Technical change
Added an opt-in stream_mode=updates path, captured assistant messages and tool calls, preserved default invoke behavior, and produced explicit errors for unsupported streams.
Upstream result
The contribution was merged upstream and closed issue #95. Async, token-stream, callback, and subgraph paths were intentionally left out of scope.
07
MERGED UPSTREAM
Anchore Syft · PR #5105
Correct Cargo PURL identity for local Rust packages
Cargo.lock omits source for local/path packages. A source-less Cargo PURL implies crates.io identity, which could make a local workspace package look like an unrelated registry package.
Technical change
Made PURL generation source-aware, omitted PURLs for local/workspace entries, preserved sourced identity for registry and git packages, and added a path-dependency fixture with regression tests.
Upstream result
The contribution was merged into Syft. It corrects the SBOM identity layer; separate downstream hardening for Grype's name/version matching remains under review.