Security fixes land on the latest released minor. This table is updated as part of
the release checklist in RELEASING.md — if it names a version you
cannot pip install, that is a bug, please report it.
| Version | Supported |
|---|---|
| 0.6.x | ✅ |
| < 0.6 | ❌ |
PhilanthroPy model bundles (.joblib) are pickle-based. Loading one —
philanthropy score/validate --model X, or joblib.load / the
philanthropy.utils.load_model helper — executes arbitrary code during
unpickling, exactly like scikit-learn's own persisted estimators.
Only load model bundles from a source you trust. Never run
philanthropy score --model on a .joblib file received from an untrusted
party. See scikit-learn's
persistence security note.
Please do not open a public issue for security problems.
Use GitHub's private vulnerability reporting — open a draft advisory. It is private to you and the maintainer, and it is the preferred channel.
If that is unavailable to you, email shivamlalakiya151299@gmail.com instead.
Either way, include a description and, if possible, a minimal reproduction. You can expect an acknowledgement within a few days and a coordinated fix and disclosure.
PhilanthroPy makes no network calls — no telemetry, no license check, no
phone-home, and no third-party data append. It imports no HTTP client, and
tests/test_no_network.py enforces this in CI by making every socket raise.
Donor data you pass to it stays on the machine that ran it.
For the full set of questions an institutional security or privacy review asks, see security review Q&A.