MEGALODON_CI: Automated GitHub Actions Workflow Poisoning and CI/CD Credential Harvesting at Scale

devsecops, ASPM, vulnerability management, application security, exposure management, reachability analysis, attack surface management, npm supply chain, account takeover, TeamPCP, Mini Shai-Hulud, atool, AntV, jest-canvas-mock, echarts-for-react, Runner.Worker memory scraping, zero-CVE supply chain, CI/CD credential theft, bun runtime, t.m-kosche.com, SBOM

Executive Summary

Automated mass commits are replacing legitimate GitHub Actions workflow files with a malicious version named “Optimize-Build.” When the poisoned workflow runs, it decodes and executes a bash credential harvester. The script drains every secret the runner can reach: AWS keys across all configured profiles, GCP OAuth tokens, SSH private keys, GitHub OIDC tokens, kubeconfig, Terraform and Vault credentials, Docker registry auth, package registry tokens, and cloud instance metadata queried from AWS, GCP, and Azure IMDS endpoints — all in a single execution.

This campaign has no CVE. No scanner fires on it. The payload is a base64-encoded shell script injected directly into a workflow YAML file. Every tool that monitors packages and libraries is blind to it. Catching it requires workflow file integrity monitoring, GitHub audit log analysis, or network egress anomaly detection on CI runners.

Each compromised repository gets a unique device ID embedded in the payload at injection time. All exfiltration routes to a C2 server at 216.126.225.129:8443 under the campaign identifier “megalodon.” GitHub code search on the payload base64 prefix (Q0I9Imh0dHA6Ly8yMTYu) returned over 3,500 infected YAML files at time of writing, with an alleged total of 5,000+ repositories reported by OX Security. The two initially confirmed repositories are from unrelated organisations — a commercial live chat platform and a personal geolocation project — confirming automated iteration across a corpus of stolen GitHub tokens or OAuth grants.

OX Security has explicitly linked this campaign to the preceding TeamPCP GitHub breach, framing MEGALODON as a second wave that followed once attacker access to GitHub infrastructure was established.

TL;DR for Engineering Teams

FieldDetail
What it isActive zero-CVE campaign. Automated mass commits replace GitHub Actions workflow files with a credential harvester. No CVE, no CVSS score, no package IOC.
Where it bitesAny GitHub repository where the attacker has write access. 3,500+ infected repos confirmed via GitHub code search; 5,000+ alleged total (OX Security, May 2026). Every runner executing a poisoned workflow loses all accessible secrets.
Why it mattersZero scanner coverage. The payload targets AWS IMDS, GCP metadata, Azure IMDS, and OIDC tokens — full cloud credential exfiltration in one execution, across all three major cloud providers simultaneously.
Patch statusNo patch — this is not a software vulnerability. Requires access revocation, workflow revert, and full secrets rotation.
Immediate actionAudit all .github/workflows/ files for base64 -d | bash. Rotate all secrets accessible from any runner that ran a modified workflow. Block 216.126.225.129 at network egress.

Vulnerability Overview

FieldDetail
VendorGitHub / affected repository owners
ProductGitHub Actions CI/CD workflows
Vulnerability TypeCI/CD workflow poisoning — credential harvesting
CWECWE-94 (Code Injection), CWE-522 (Insufficiently Protected Credentials), CWE-312 (Cleartext Storage of Sensitive Information), CWE-829 (Inclusion from Untrusted Control Sphere)
CVSS ScoreN/A — No CVE assigned. Qualitative: Critical
CVENone — Zero-CVE supply chain campaign
Patch AvailableNo — requires access remediation and secrets rotation
Active ExploitationConfirmed — automated mass commits observed May 2026
C2 Infrastructure216.126.225.129:8443 (campaign identifier: megalodon)
Campaign StatusActive — investigation ongoing, attribution unconfirmed

Technical Anatomy

Root Cause

There is no software vulnerability here. GitHub Actions works exactly as designed: any workflow file committed to a repository runs on the runner with whatever permissions it requests. The attacker gains write access via a stolen PAT, OAuth grant, or compromised account, commits a replacement workflow, and the runner executes it cleanly. The runner has no way to know the workflow was swapped.

GitHub has no built-in enforcement for workflow file integrity. Nothing in the platform detects that a workflow was replaced with a malicious version. Nothing requires cryptographic signing of workflow content. Nothing alerts when a workflow suddenly requests id-token: write — a permission most standard workflows never need. The attacker added that permission deliberately. It unlocks OIDC token generation, and its presence in any replacement workflow is the clearest available signal that something is wrong.

devsecops, ASPM, vulnerability management, application security, exposure management, reachability analysis, attack surface management, npm supply chain, account takeover, TeamPCP, Mini Shai-Hulud, atool, AntV, jest-canvas-mock, echarts-for-react, Runner.Worker memory scraping, zero-CVE supply chain, CI/CD credential theft, bun runtime, t.m-kosche.com, SBOM

Three-Step Exploit Path

StepPhaseDetail
1Entry PointAttacker commits a replacement workflow file to the target repository using a compromised PAT, OAuth token, or GitHub account with write access. The file is renamed “Optimize-Build” and the job renamed “check”. The id-token: write permission is added. All original build steps are stripped and replaced with a single run: step containing a base64-encoded bash payload.
2TriggerWhen the workflow runs — via workflow_dispatch, on push, or on pull request — the runner executes: set +e; echo "[payload]" | base64 -d | bash. The payload decodes in memory (nothing written to disk before execution), initialises per-campaign variables including a unique device ID and C2 callback URL, then begins harvesting.
3Execution ImpactThe harvester exfiltrates all environment variables, credential files (AWS, SSH, GCP, kube, Terraform, Vault, Docker, npm, git), CI/CD tokens (GITHUB_TOKEN, ACTIONS_ID_TOKEN, CI_JOB_JWT_V2, BITBUCKET_TOKEN), source code regex matches for credential patterns, and cloud IMDS credentials from AWS, GCP, and Azure simultaneously. All data is POST-exfiltrated to 216.126.225.129:8443. Temporary artifacts are deleted on exit via trap.
devsecops, ASPM, vulnerability management, application security, exposure management, reachability analysis, attack surface management, npm supply chain, account takeover, TeamPCP, Mini Shai-Hulud, atool, AntV, jest-canvas-mock, echarts-for-react, Runner.Worker memory scraping, zero-CVE supply chain, CI/CD credential theft, bun runtime, t.m-kosche.com, SBOM

Attack Chain — Phases

Phase 1 — Access Acquisition Attacker obtains write access to GitHub repository via stolen PAT, OAuth grant abuse, or compromised account credential.

Phase 2 — Workflow Injection Automated tooling commits replacement workflow files. All workflow files in .github/workflows/ are targeted. Each injected file receives a unique device ID embedded in the payload. Commits use a hardcoded fake identity — ci-bot@automated.dev or build-system@noreply.dev, dated September 17, 2001 — mirroring TeamPCP use of a fabricated commit date to obscure timing.

Phase 3 — Credential Harvest On next workflow execution, the runner exfiltrates: all environment variables, 28+ credential file paths, AWS CLI profile enumeration, GCP token extraction, source file grep for credential patterns (150 files, 29 file types), OIDC token generation, and all three cloud IMDS endpoints. The credential pattern search explicitly targets AWS keys, Slack tokens, GitHub tokens, PyPI tokens, and npm tokens. Slack token inclusion is notable — it suggests the attacker expects active Slack workspace tokens to be accessible in developer and CI environments.

Phase 4 — Durable Access Harvested SSH keys, long-lived IAM credentials, and git tokens give the attacker repository and cloud access that persists beyond the initial compromise and survives a simple workflow revert.

There is a regex of the second-layer base64 regex confirms the credential pattern search explicitly targets AWS keys, Slack tokens, GitHub tokens, PyPI tokens, and npm tokens alongside generic secret patterns. Slack tokens are not commonly included in harvester tooling of this type — their presence suggests the attacker expects active Slack workspace tokens to be accessible in developer and CI environments.

Affected Scope

ComponentVulnerable ConditionFixed VersionNotes
GitHub Actions workflow filesAny .github/workflows/*.yml with base64-encoded run: stepN/A — remove malicious file, revert to clean commitAll workflow files in the repository are targeted
GitHub Actions runners (hosted)Executes a poisoned workflow with any CI/CD secrets in scopeN/A — rotate all accessible secrets post-executionEphemeral runners — no host persistence
GitHub Actions runners (self-hosted)Executes a poisoned workflow; filesystem persistence possibleN/A — rotate secrets, audit runner filesystemHigher risk: non-ephemeral, may retain harvested artifacts
OIDC-connected cloud accounts (AWS/GCP/Azure)Runner has id-token: write; OIDC trust configuredRevoke and reissue OIDC trust relationshipsShort-lived tokens exfiltrated and usable within validity window
Cloud instances with IMDS accessRunner deployed in AWS, GCP, or Azure with metadata service accessibleN/A — restrict IMDS access from CI runnersIMDSv2 is queried; IAM role credentials exfiltrated if present

Exposure Analysis

EnvironmentRisk LevelReason
Repositories with cloud deployment secretsCRITICALAWS/GCP/Azure access keys in runner scope exfiltrated immediately via printenv
Repositories with OIDC to cloudCRITICALid-token: write grants OIDC token generation — attacker can impersonate the runner identity at cloud provider
CI/CD pipelines with package registry tokensHIGHnpm, PyPI, Docker Hub tokens exfiltrated — downstream supply chain poisoning risk
Cloud-hosted runners (AWS/GCP/Azure)HIGHIMDS endpoint queries extract IAM role credentials, managed identity tokens regardless of repository secrets
Repositories with SSH deploy keysHIGH~/.ssh/ directory fully exfiltrated — SSH private keys enable persistent repository and server access
Developer machine / local runner environmentsHIGHShell history, git credentials, Vault tokens, and kubeconfig all harvested if present on runner filesystem

GitHub code search on the payload prefix returned 3,500+ infected YAML files in public repositories. That number is expected to grow — the campaign is active and the attack toolchain is automated. Private repository exposure is harder to quantify from the outside, but the blast radius is larger: private repos are more likely to hold production secrets, cloud deployment credentials, and infrastructure access.

Protect yourself with the latest threat intelligence, get access to PHOENIX BLUE Today

Real-World Impact: Confirmed Compromises

RepositoryWorkflow TargetedDevice ID
Tiledesk/tiledesk-serverdocker-community-worker-push-latest.ymlhefs8esnhgkx
Davidf2004/Proyecto-GEOREFERENCIADOSdocker-publish.yml4ny72dgixww6

Tiledesk had multiple workflow files compromised in the same campaign. The attacker iterated through all files in .github/workflows/, not just the primary one. The per-repository device IDs confirm automated tooling generating unique per-target payloads at injection time.

Attack Scenarios

Scenario A — Repository with AWS deployment secrets: The attacker gets AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN from the printenv dump within seconds of the workflow running. Long-lived IAM user credentials expire when rotated, not on a schedule.

Scenario B — Runner with OIDC to AWS: ACTIONS_ID_TOKEN_REQUEST_URL and ACTIONS_ID_TOKEN_REQUEST_TOKEN are exfiltrated. The attacker calls the OIDC endpoint directly and gets a short-lived AWS session token within the validity window, typically minutes. Rotating repository secrets alone does not close this. The OIDC trust configuration in AWS must be revoked and rebuilt from scratch.

Scenario C — GCP-connected runner: gcloud auth print-access-token returns an active GCP OAuth2 access token. Combined with the full GCP IMDS dump, the attacker has project-level API access across every service the service account was granted.

Scenario D — Package registry compromise: npm, PyPI, or Docker Hub tokens exfiltrated from ~/.npmrc, ~/.pypirc, or ~/.docker/config.json let the attacker publish under the organisation’s registry identity. A CI credential theft becomes a supply chain attack on everyone downstream.

Detection Guidance

Log Indicators

  • GitHub Audit Log: commits to .github/workflows/ from ci-bot@automated.dev and build-system@noreply.dev
  • Git log: commits dated September 17, 2001 in any workflow file path: git log --before="2002-01-01" -- .github/workflows/
  • GitHub Actions run logs: jobs named “check” running base64 commands in run: steps
  • Network egress logs: POST requests carrying X-Mega-DID, X-Mega-Plat, or X-Mega-File headers
  • AWS CloudTrail / GCP Audit Log: credential use from unexpected IPs or user-agent strings containing curl following a CI run

IOC Table

CategoryIndicatorNotes
IP Address216[.]126[.]225[.]129C2 exfiltration server
Port8443Non-standard HTTPS
URLhxxp://216[.]126[.]225[.]129:8443?h=megalodonC2 beacon base URL
HTTP Paramh=megalodonCampaign identifier in every exfil request
HTTP HeaderX-Mega-DIDDevice ID per compromised repository
HTTP HeaderX-Mega-PlatPlatform tag (gh = GitHub)
HTTP HeaderX-Mega-FileLogical filename of exfiltrated artifact
Workflow NameOptimize-BuildMalicious replacement workflow display name
Job NamecheckMalicious job name within replacement workflow
Permissionid-token: writeAdded by attacker to enable OIDC harvest
Shell Patternset +e; echo "..." | base64 -d | bashDetectable in workflow YAML
Commit Authorci-bot@automated.devFake bot identity
Commit Authorbuild-system@noreply.devAlternate fake bot identity
Commit DateSeptember 17, 2001Hardcoded fake historical date on malicious commits
Base64 PrefixQ0I9Imh0dHA6Ly8yMTYuStart of encoded payload — GitHub code search returns 3,500+ infected YAML files

Detection Queries

GitHub code search — find all infected workflow files across public repositories:

https://github.com/search?q=Q0I9Imh0dHA6Ly8yMTYu&type=code

This query searches for the base64 payload prefix and returns currently infected public YAML files. Run the same string grep locally across your own repositories:

grep -rn "Q0I9Imh0dHA6Ly8yMTYu" .github/workflows/

Find malicious commits by date (hardcoded fake date September 17, 2001):

git log --before="2002-01-01" -- .github/workflows/

GitHub Audit Log — workflow file modifications (gh CLI):

gh api /orgs/{org}/audit-log --paginate \

  -F phrase=”action:workflows.created OR action:workflows.updated” \

  | jq '.[] | select(.data.workflow_path | contains(".github/workflows"))'

Grep all workflow files in a repository for the malicious pattern:

grep -rn "base64 -d.*bash\|base64 -d | bash" .github/workflows/

Check for id-token: write permissions added to workflows:

grep -rn "id-token: write" .github/workflows/

Scanner References

  • Phoenix Security — GitHub Actions workflow integrity scanner: monitors commits to .github/workflows/ for injection patterns and unexpected permission additions
  • StepSecurity Harden-Runner: monitors runner process execution and network egress at job level — detects curl POST to unexpected external IPs
  • Poutine (Boost Security): static analysis scanner for GitHub Actions workflow security misconfigurations including dangerous run: patterns
  • GitHub Advanced Security — secret scanning does not detect this attack (no CVE, no package); workflow file monitoring via code scanning rules is required

Remediation Guidance

Immediate Actions

  1. Audit all .github/workflows/ files across every repository. Search for base64 -d | bash in any run: step. Any match is a confirmed compromise.
  2. For every repository where a workflow was modified: rotate all secrets accessible to runners — AWS access keys, GCP service account keys, SSH private keys, Docker Hub tokens, npm tokens, GitHub PATs stored as secrets.
  3. Revoke and reissue all OIDC trust configurations (AWS IAM OIDC providers, GCP Workload Identity Federation, Azure federated credentials) connected to affected repositories. Rotating repository secrets alone is not sufficient.
  4. Block outbound connections to 216.126.225.129 at network egress for all self-hosted runners.
  5. Review the GitHub audit log for the past 30 days for unexpected OAuth application grants, new PAT authorisations with push scope, and GitHub App installations with contents: write.

Platform Responses

npm responded by invalidating granular access tokens with write access that bypass 2FA (npm statement, May 2026). This reduces account hijacking risk for npm registry tokens but does not address malicious workflow files already present in repositories or tokens exfiltrated before the revocation.

Structural Mitigations

  • Enable required pull request reviews for all changes to .github/workflows/ using branch protection rules and CODEOWNERS with security team routing.
  • Audit every workflow for id-token: write. This permission should only appear in workflows that explicitly document OIDC usage.
  • Scope repository secrets to specific environments and workflows using GitHub Environments with deployment protection rules.
  • Replace long-lived IAM user credentials in CI runners with OIDC wherever possible — but treat OIDC configurations as requiring rotation after any repository-level compromise.
  • For self-hosted runners: restrict IMDS access using IMDSv2 hop limit reduction (set hop limit to 1).
  • Pin GitHub Actions to commit SHAs rather than branch or tag references.

Remediation Ownership Plan

OwnerActionDeadline
Platform / DevSecOpsAudit all workflow files for base64 -d | bash pattern24 hours
Platform / SecEngRotate all runner-accessible secrets in affected repositories24 hours
Cloud / IAM TeamRevoke and reissue OIDC trust configurations24 hours
NetSecBlock 216.126.225.129 at network perimeter24 hours
PlatformEnable required PR reviews for .github/workflows/ changes48 hours
AppSecAudit all workflows for id-token: write permission48 hours
SecOpsReview GitHub audit log for suspicious access grants72 hours

Phoenix Security Platform Recommendations

MEGALODON_CI has no CVE. Every traditional vulnerability scanner is blind to it. Detection requires controls at the workflow integrity and CI/CD posture layer — which is what Phoenix Security’s ASPM platform is built for.

Phoenix Security maps CI/CD workflow findings to the runtime assets they protect, identifies which runners hold credentials for live cloud workloads, and assigns remediation ownership to the teams responsible for each affected repository. A scattered incident becomes a tracked, owned backlog.

  • Attack surface management: identify all repositories with active GitHub Actions workflows and surface those lacking workflow file protection controls
  • Contextual deduplication: correlate runner compromise signals across repositories into a unified finding set, avoiding duplicate escalations to the same team
  • Reachability analysis: identify which compromised runner secrets have reachable paths to production cloud workloads — prioritise rotation for runners with IAM roles attached to live environments
  • Remediation campaigns: create a MEGALODON_CI campaign in Phoenix, assign workflow audit and secrets rotation tasks to owning teams, track verification status per repository
  • Ownership attribution: map GitHub repositories to responsible engineering teams automatically — no manual triage of which team owns which repo workflow
  • phxintel.security: Phoenix threat intelligence portal maintains the MEGALODON_CI IOC list including the C2 IP, device IDs, workflow signatures, and detection queries for SIEM integration

External References

#SourceTypeDate
1GitHub commit — Tiledesk/tiledesk-server: acac5a9854650c4ae2883c4740bf87d34120c038Confirmed CompromiseMay 2026
2GitHub commit — Davidf2004/Proyecto-GEOREFERENCIADOS: c93393ff847d4d49c348dc3b6581bdfb3a8e431fConfirmed CompromiseMay 2026
3Phoenix Security — MEGALODON_CI payload decode and IOC extraction (primary research)Internal ResearchMay 2026
4MITRE ATT&CK — T1195.001 Supply Chain CompromiseTechnique Reference
5MITRE ATT&CK — T1528 Steal Application Access TokenTechnique Reference
6MITRE ATT&CK — T1552.001 Unsecured Credentials: Credentials In FilesTechnique Reference
7SafeDep — Megalodon: Mass GitHub repo backdooring CI workflows (original discovery)External ResearchMay 2026
8OX Security — Megalodon: New CI/CD Malware Spreads Across GitHub, Infecting 5,000+ RepositoriesExternal ResearchMay 2026
9npm statement — granular access tokens with write access bypassing 2FA invalidatedPlatform ResponseMay 2026
10Phoenix Security phxintel.security — MEGALODON_CI threat intelligence feedPhoenix IntelMay 2026

Francesco is an internationally renowned public speaker, with multiple interviews in high-profile publications (eg. Forbes), and an author of numerous books and articles, who utilises his platform to evangelize the importance of Cloud security and cutting-edge technologies on a global scale.

Discuss this blog with our community on Slack

Join our AppSec Phoenix community on Slack to discuss this blog and other news with our professional security team

From our Blog

TeamPCP (UNC6780) breached GitHub’s internal infrastructure on May 19–20, 2026 through a poisoned VS Code extension that ran silently on a developer’s endpoint and exfiltrated approximately 3,800 internal repositories. The attack produced no CVE. Standard CVE-feed scanners, SCA tools, and signed-provenance checks all missed it. This is exactly the zero-CVE developer trust surface gap Phoenix Blue Intelligence and Phoenix Blue Shield are built to close.
Francesco Cipollone
TeamPCP’s Mini Shai-Hulud worm hit GitHub and PyPI simultaneously on May 19–20, 2026. Three backdoored versions of durabletask — Microsoft’s Azure Python SDK with 417,000 monthly downloads — were published and yanked within hours. A poisoned VS Code extension on a GitHub employee device led to the exfiltration of ~3,800 internal repositories, now listed for sale at $50,000. Zero CVEs exist across the entire nine-week campaign. Traditional scanners have no record of any of it.
Francesco Cipollone
OpenAI has disclosed two employee devices were compromised in the May 11, 2026 Mini Shai-Hulud TanStack supply chain attack, with internal source code repositories accessed and iOS, macOS, and Windows code-signing certificates rotated. Mistral AI confirmed one developer device was hit and is facing a $25,000 TeamPCP extortion demand for an alleged 5 GB source code leak. Days later, TeamPCP launched a $1,000 Monero “supply chain attack contest” on BreachForums with the Shai-Hulud worm source code attached, and OX Security disclosed the first observed copycat campaign from a new actor publishing four malicious npm packages. Phoenix Security’s PHX-Neural scanner has independently flagged a 174,659-weekly-download PyPI package (nicegui 3.12.0) with a 100/100 behavioral score and full Shai-Hulud-aligned ATT&CK coverage. This article covers the upstream TanStack wave, the named victim disclosures, the TeamPCP infrastructure aging analysis, the technical breakdown of the four copycat packages, and the PHX-Neural behavioral evidence on the adjacent PyPI signal.
Francesco Cipollone
Contents
Derek

Derek Fisher

Head of product security at a global fintech

Derek Fisher – Head of product security at a global fintech. Speaker, instructor, and author in application security.

Derek is an award winning author of a children’s book series in cybersecurity as well as the author of “The Application Security Handbook.” He is a university instructor at Temple University where he teaches software development security to undergraduate and graduate students. He is a speaker on topics in the cybersecurity space and has led teams, large and small, at organizations in the healthcare and financial industries. He has built and matured information security teams as well as implemented organizational information security strategies to reduce the organizations risk.

Derek got his start in the hardware engineering space where he learned about designing circuits and building assemblies for commercial and military applications. He later pursued a computer science degree in order to advance a career in software development. This is where Derek was introduced to cybersecurity and soon caught the bug. He found a mentor to help him grow in cybersecurity and then pursued a graduate degree in the subject.

Since then Derek has worked in the product security space as an architect and leader. He has led teams to deliver more secure software in organizations from multiple industries. His focus has been to raise the security awareness of the engineering organization while maintaining a practice of secure code development, delivery, and operations.

In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

Jeevan Singh

Jeevan Singh

Founder of Manicode Security

Jeevan Singh is the Director of Security Engineering at Rippling, with a background spanning various Engineering and Security leadership roles over the course of his career. He’s dedicated to the integration of security practices into software development, working to create a security-aware culture within organizations and imparting security best practices to the team.
In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

James

James Berthoty

Founder of Latio Tech

James Berthoty has over ten years of experience across product and security domains. He founded Latio Tech to help companies find the right security tools for their needs without vendor bias.

christophe

Christophe Parisel

Senior Cloud Security Architect

Senior Cloud Security Architect

Chris

Chris Romeo

Co-Founder
Security Journey

Chris Romeo is a leading voice and thinker in application security, threat modeling, and security champions and the CEO of Devici and General Partner at Kerr Ventures. Chris hosts the award-winning “Application Security Podcast,” “The Security Table,” and “The Threat Modeling Podcast” and is a highly rated industry speaker and trainer, featured at the RSA Conference, the AppSec Village @ DefCon, OWASP Global AppSec, ISC2 Security Congress, InfoSec World and All Day DevOps. Chris founded Security Journey, a security education company, leading to an exit in 2022. Chris was the Chief Security Advocate at Cisco, spreading security knowledge through education and champion programs. Chris has twenty-six years of security experience, holding positions across the gamut, including application security, security engineering, incident response, and various Executive roles. Chris holds the CISSP and CSSLP certifications.

jim

Jim Manico

Founder of Manicode Security

Jim Manico is the founder of Manicode Security, where he trains software developers on secure coding and security engineering. Jim is also the founder of Brakeman Security, Inc. and an investor/advisor for Signal Sciences. He is the author of Iron-Clad Java: Building Secure Web Applications (McGraw-Hill), a frequent speaker on secure software practices, and a member of the JavaOne Rockstar speaker community. Jim is also a volunteer for and former board member of the OWASP foundation.

Join our Mailing list!

Get all the latest news, exclusive deals, and feature updates.

The IKIGAI concept
x  Powerful Protection for WordPress, from Shield Security PRO
This Site Is Protected By
Shield Security PRO