Open-source work
Accepted fixes to cloud, security and infrastructure projects, with the reported failure, patch and review linked below.
Snapshot verified 2026-11-03. Includes code, tests and documentation. Own repositories, unmerged proposals and closed PRs are excluded. Check the live GitHub record ↗
- Merged upstream PRs
- 34
- Upstream repositories
- 7
- Combined GitHub stars
- 70.5k
- Open PRs in review
- 13
Merged intoPRsStars
Merged per month Jul–Nov 2026
CVE-2026-120829
Ansible. Reported to Red Hat Product Security, which assigned the CVE and credited me with the discovery.
Upstream fix in progress. Technical details will follow the public advisory.
Why contribute upstream?
I contribute fixes to open-source security and infrastructure tools. Returning a fix to the project lets other users receive it too, instead of keeping the same workaround in their own copy.
The work includes reading existing code, reproducing the problem, adding tests and going through review. The cases below link to the accepted patch so the change can be checked directly.
Read the contribution approach ↗pyinfra #1945
Infrastructure / SSH
Support OpenSSH host certificates.
- Problem
- OpenSSH certificate-authority entries were skipped while loading known_hosts. A server signed by a trusted CA then appeared to be an unknown host under strict checking.
- Change
- Keep CA entries separately, then check the host pattern, certificate principal and validity period. Strict checking stays enabled.
- Reason
- Supporting the certificate format still requires checking whether that certificate is trusted.
Merged September 2026 · connector regression tests
Read the patch and reviewcfn-lint #4704
Amazon Web Services (AWS)
Validate CloudFormation lifecycle policies.
- Problem
- A bare Fn::Select used as a CreationPolicy or UpdatePolicy passed linting, but CloudFormation rejected it unless AWS::LanguageExtensions resolved it first.
- Change
- Check CreationPolicy and UpdatePolicy at the policy layer. Keep the shared Fn::Select resolver unchanged.
- Reason
- The rule belongs to the policy attribute; other uses of the function need to keep working.
Merged September 2026 · policy and intrinsic-function tests
Read the patch and reviewProwler #11837
Kubernetes / Security checks
Report Pods using hostPath volumes.
- Problem
- Pods can mount node filesystem paths with hostPath volumes. A useful check needs volume evidence from the Kubernetes service model.
- Change
- Collect Pod volume data and report one finding per Pod. Tests cover the collected data and the check.
- Reason
- The check can only evaluate volumes that the collector has kept in the Pod model.
Merged July 2026 · service collection and check tests
Read the patch and reviewMerged pull requests
Checked on 2026-11-03
A count is only useful if it can be checked. Every entry below links to a merged upstream pull request, grouped by repository.
pyinfra-dev/pyinfra
- fix(connectors.ssh): match host CAs on custom ports #1971
- fix(api): omit variadic kwargs from auto labels #1983
- fix(operations.git): allow chowned repo pulls #1982
- fix(api): strip su password prompt from fact output #1981
- fix(connectors.ssh): preserve nested ProxyJump sockets #1980
- docs(operations.files): warn rsync deletes extra files #1979
- fix(connectors.ssh): support sudo passwords with rsync #1950
- fix(cli): parse literal list arguments #1892
- fix(operations.bsdinit): enable OpenBSD services with rcctl #1916
- docs: fix connectors index link #1958
- fix(connectors.ssh): trust known_hosts certificate authorities Write-up: Supporting SSH host certificates in pyinfra #1945
- fix(connectors.ssh): retry NFSv4 ACL handover #1955
- docs(operations.server): mention shell executable #1941
- fix(operations.dnf): install pinned package versions #1913
- chore: deduplicate shellcheck lint command #1891
- fix(cli): preserve Windows paths in module errors #1884
aws-cloudformation/cfn-lint
- fix(formats): register log group name validation correctly #4745
- fix(lambda): update SnapStart supported regions #4740
- fix: handle SAM RestApi stage references #4730
- fix: reject Fn::Select lifecycle policies without transform Write-up: Where I added the lifecycle policy check in cfn-lint #4704
- Allow Fn::GetAZs in Fn::Join values #4677
- Avoid maxProperties warnings for single-property schemas #4686
- Allow GetAtt outputs on SAM applications #4665
- fix(functions): allow FindInMap DefaultValue without transform #4628
- Warn for ignored SAM resource attributes #4620
- Validate Fn::Select negative indexes #4622
- Fix shared pricing defaults #4572
prowler-cloud/prowler
aquasecurity/trivy
ansible/ansible-lint
trailofbits/graphtage
DataDog/guarddog
Open pull requests
Checked on 2026-11-03
13 proposals waiting for maintainer review. They are not counted above until they are merged, and some may be closed without merging.
- fix(alibabacloud): detect ECS security group rules open to ::/0 prowler-cloud/prowler #12982
- fix(alibabacloud): read RDS whitelist from security_iplist prowler-cloud/prowler #12980
- Use bigint for PostgreSQL ASN fields certtools/intelmq #2729
- Handle bracketed URL netloc sanitization certtools/intelmq #2728
- Allow ASN database update to create missing file certtools/intelmq #2727
- fix(kubernetes): correlate secret rules with resourceNames bridgecrewio/checkov #7706
- fix(java): avoid eqeq false positives on null checks semgrep/semgrep-rules #4070
- fix(java): catch permissive file permission APIs semgrep/semgrep-rules #4069
- fix(sdk): skip M365 outbound preset policies prowler-cloud/prowler #12902
- Include py.typed in source distribution manifest Yelp/detect-secrets #974
- Suppress kernel startup stdout during execution nteract/papermill #900
- Fix UTF-8 scans under non-UTF-8 locales Yelp/detect-secrets #973
- Detect unsafe tarfile extract calls PyCQA/bandit #1457
I am a contributor to these projects, not their maintainer or an employee of the organizations behind them. Work still under review is visible on GitHub ↗.