Physician-scientist, radiation oncologist, and independent developer focused on defensive security and privacy in medical-imaging and scientific software.
My open-source contributions span more than 50 repositories, covering security hardening, data integrity, and build reliability. My security work addresses credential and API-key exposure, missing access controls, unsafe command execution and data parsing, path traversal, archive extraction, and malformed-input handling. I also strengthen download integrity, dependency controls, and native macOS packaging.
I trace how software handles untrusted input and sensitive data, develop targeted fixes, and use synthetic regression tests to verify behavior. I document compatibility changes and validation limits, with particular attention to preserving scientific results and intended application behavior. My contributions include merged fixes, proposals under upstream review, and security reports.
I also build security and privacy tools: EntitlementDiff for comparing embedded macOS app entitlements between builds; DICOM Anonymizer for local metadata pseudonymization; and MacScope, a private binary-analysis and reverse-engineering workbench. My clinical and MR-based radiomics research informs this focus on protecting sensitive imaging workflows while modernizing the software they depend on.
Security hardening and build reliability for medical imaging software.
- 3D Slicer — Signing failure enforcement and macOS dependency escape prevention.
- ANTsPy — Reject HTTP error content before cache publication.
- BIDScoin — Command-injection hardening through literal SynthStrip arguments.
- BrainIAK — Remove expression execution from noise-dictionary parsing.
- BrainStat — Prevent partial downloads from becoming trusted cache entries.
- Clinica — Command-injection hardening for FreeSurfer atlas paths.
- dcm2niix — Dependency source pinning and explicit toolchain controls.
- dcmjs — Validate byte counts before binary data reads.
- dcmqi — Reliable macOS SDK selection.
- dcmstack — Prevent cross-call mutation of metadata-filter policy.
- deep-mr — Defensive rejection of unsupported GPU devices.
- deid — Restrict local access to pixel-cleaner outputs.
- dicom-numpy — Limit decompression memory use with streamed ZIP reads.
- dicom-validator — Prevent filename-based HTML injection in reports.
- dicomParser — Reject invalid and out-of-bounds binary stream seeks.
- dicomweb-client — Block path traversal in UID-derived output filenames.
- DIPY — Retain dataset integrity checks in restricted runtimes.
- DLTK — Block archive path escapes and unsafe TAR member types.
- FAE — Remove shell execution from folder-opening commands.
- FastSurfer — Command-injection hardening for filesystem link arguments.
- FreeSurfer — Remove shell execution from SynthStrip Docker commands.
- HD-BET — Isolate checkpoint downloads in private temporary directories.
- HeuDiConv — Eliminate executable expression parsing from cached tables.
- highdicom — Reject malformed lengths before excessive payload reads.
- InVesalius — Restore TLS verification and bound update-discovery requests.
- ITK — Architecture-aware FFTW build configuration.
- ITK-SNAP — Command-injection hardening for macOS launcher paths.
- medicaldetectiontoolkit — Prevent shell interpretation of checkpoint cleanup paths.
- MedPy — Python-compatible Boost library selection.
- minc-toolkit-v2 — Preserve explicit macOS build settings in HDF5 dependencies.
- MIRTK — Correct Apple Silicon MATLAB extension selection.
- MONAI — Propagate download publication failures instead of masking errors.
- MONAI Label — Reject failed identity-provider discovery before cache reuse.
- MRIQC — Report authentication-credential leakage in error diagnostics.
- MRtrix3 — Proposed removal of shell execution from error-log paging.
- netneurotools — Apply safe extraction filters to downloaded TAR archives.
- neuromaps — Command-injection hardening for Workbench path arguments.
- NiBabel — Reject malformed NIfTI lengths before payload processing.
- NIFTI-Reader-JS — Reject negative NIfTI lengths before payload processing.
- NiftyNet — Fork patch blocking TAR path escapes, links, and special files.
- NiftyReg — ARM64-compatible SIMD build selection.
- NiftySeg — Explicit target architectures in dependency builds.
- Nilearn — Block archive traversal using destination containment checks.
- NiPy — Remove intermediate shell execution from MATLAB launch.
- Nipype — Remove shell execution from executable dependency inspection.
- NiReports — Prevent unterminated SVG input from causing endless scanning.
- nitrain — Block OpenNeuro download paths outside the data root.
- NiWorkflows — Remove shell execution from mri_info filename handling.
- nnU-Net — Isolate model downloads in private staging directories.
- Papaya — Prevent HTML interpretation of image title labels.
- PlatiPy — Prevent credential leakage, unauthorized log access, and file path escapes.
- pydicom — Reject HTTP error bodies before writing cached data.
- PyMedPhys — Prevent optimized Python from disabling checksum enforcement.
- pynetdicom — Prevent authentication-password leakage through logs.
- pynrrd — Reject invalid NRRD dimensions before data processing.
- pyplastimatch — Stop failed external processes from appearing successful.
- PyRadiomics — Reduce notebook network exposure and reject failed downloads.
- PyXNAT — Prevent other local users from reading credential files.
- RSNA Anonymizer — Isolate helper caches to reduce shared temporary-file risks.
- Semgrep Rules — Refine authorization detection for explicit authentication schemes.
- SimpleITK — Private security disclosure and proposed safe archive extraction.
- surfa — Command-injection hardening for FreeView subtitle arguments.
- TorchIO — Block insecure HTTP fallback after HTTPS failures.
- TorchXRayVision — Protect existing downloads from failed transfer replacement.
- TotalSegmentator — Remove shell execution from NORA mask-tagging commands.
- TractSeg — Prevent shell interpretation of cleanup filenames.
- WORC — Remove expression execution from coordinate parsing.
- XCP-D — Bound download buffering to reduce memory-exhaustion risk.
- xnatutils — Block download destinations outside the selected directory.