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.

MERGED UPSTREAM

GenAI Data Security Initiative · PR #11

Turkish-first AI security test corpus

Merge commit
734a77f7a0ea
Merge date
Problem

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.

MERGED UPSTREAM

GenAI Red Team Lab · PR #50

System reconnaissance for authorized GenAI assessments

Merge commit
f41c8066cfaf
Merge date
Problem

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.

MERGED UPSTREAM

GenAI Red Team Lab · PR #51

Reliability hardening for reconnaissance results

Merge commit
97993e8237b0
Merge date
Problem

Stalled or broken targets could appear to produce valid reconnaissance evidence, while reporting and lifecycle paths needed safer boundaries.

Technical change

Added per-probe deadlines, target-error separation, refusal-only false-positive reduction, strict configuration, shell-free lifecycle handling, real HTTP readiness, deterministic cleanup, and private collision-safe reports.

Upstream result

The hardening was merged upstream. Focused regression coverage and repository quality gates passed; a full Podman/Ollama campaign remained outside the validation boundary.

MERGED UPSTREAM

OWASP AI Exchange · PR #187

AI engineering primer for security professionals

Merge commit
601d67e8eb02
Merge date
Problem

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.

MERGED UPSTREAM

OWASP Agent Security Regression Harness · PR #157

Explicit goal-event evidence for OpenAI Agents

Merge commit
798a8fc1b923
Merge date
Problem

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.

MERGED UPSTREAM

OWASP Agent Security Regression Harness · PR #158

Capturing LangGraph update streams as security evidence

Merge commit
1d3cd7caf2dd
Merge date
Problem

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.

MERGED UPSTREAM

Anchore Syft · PR #5105

Correct Cargo PURL identity for local Rust packages

Merge commit
86baeeb481ce
Merge date
Problem

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.

Open Enes Deniz profileOpen GitHub profile