Background
Several Hiero repositories sit in the critical path of real-value transactions on the Hedera network and any network built on Hiero. A malicious or compromised Committer or Maintainer with merge rights on any of these repos could approve code that silently harms end users — for example by:
- Hard-coding an account ID in a fee or transfer calculation
- Injecting a dependency that exfiltrates private keys at signing time
- Introducing a side channel in cryptographic code
- Modifying a build or release workflow to backdoor a published artifact
- Altering transaction routing or fee logic in node or relay software
Real money is at stake. This makes these repositories materially different from many open source projects and justifies a higher level of maintainer vetting than the standard contribution-based process alone provides.
Scope: What Qualifies as Security-Sensitive
A Hiero project should carry the Security-Sensitive designation if a malicious or negligent code change in that repo could directly cause financial loss to end users — specifically, projects that participate in the construction, signing, routing, or processing of value transfers on a Hiero-based network.
In scope — initial designated projects:
| Repository |
Reason |
hiero-sdk-js |
Constructs and signs transactions on behalf of end users |
hiero-sdk-java |
Constructs and signs transactions on behalf of end users |
hiero-sdk-go |
Constructs and signs transactions on behalf of end users |
hiero-sdk-rust |
Constructs and signs transactions on behalf of end users |
hiero-sdk-python |
Constructs and signs transactions on behalf of end users |
hiero-sdk-cpp |
Constructs and signs transactions on behalf of end users |
hiero-sdk-swift |
Constructs and signs transactions on behalf of end users |
hiero-sdk-tck |
Cross-SDK conformance testing; validates transaction behaviour |
hiero-consensus-node |
Processes and reaches consensus on all network transactions |
hiero-mirror-node |
Canonical record of all network transactions; downstream trust anchor |
hiero-json-rpc-relay |
Routes EVM-compatible transactions to the Hedera network |
Out of scope — explicitly excluded:
- DID / identity SDKs (
hiero-did-sdk-js, hiero-did-sdk-python): These manage decentralized identifiers and verifiable credentials, not value transfers. They are governed through the Identity community.
- dApps and applications built on top of Hedera: Application-layer projects that consume the SDKs but do not themselves sit in the transaction path.
- Developer tooling, documentation, and website repos:
hiero-docs, hiero-website, hiero-cli, and similar repos do not participate in transaction processing.
- Standards and governance repos:
hiero-improvement-proposals, sdk-collaboration-hub, governance, and similar repos.
The TSC is responsible for maintaining the designation list and may add or remove projects by vote as the ecosystem evolves.
Real-World Precedents
These are not theoretical risks. The broader software supply chain has seen exactly this kind of attack:
- Event-stream (2018): A new maintainer was granted ownership of a widely-used npm package and injected code that stole Bitcoin wallet credentials from a specific downstream application. The attack was live for weeks before detection.
- Rspack (December 2024): A stolen npm token was used to publish a version of
@rspack/core (500k weekly downloads) containing an XMRig cryptocurrency miner delivered via a postinstall script.
- npm "Great Heist" (September 2025): Attackers phished the maintainers of
debug, chalk, and 17 other packages (collectively 2+ billion weekly downloads) by spoofing the npm support flow to capture live 2FA codes. Malicious versions were live for approximately 2 hours before being reverted.
In all cases, the attack succeeded because the projects had no mechanism to verify who their maintainers really were beyond a GitHub account.
What Other Security-Sensitive Projects Do
Bitcoin Core
All merge commits must be GPG-signed by a maintainer whose public key is stored in the repository. A verify-commits script checks every merge, creating a cryptographic chain of trust. New maintainers are selected by existing maintainers based on demonstrated competence over many months — their keys are added by the existing team, not self-declared.
CNCF Graduated Projects
CNCF graduation criteria require documented governance, a defined security disclosure process, and organizational diversity among maintainers. Well-established graduated projects — Kubernetes being the canonical example — enforce multiple independent reviewers per PR by convention, preventing any single person from unilaterally merging code.
Apache Software Foundation
Any software release requires at least three active PMC (+1) votes. A single compromised or malicious maintainer cannot publish a release alone. The ASF also enforces diversity of organizational affiliation, so no single company can dominate a project's governance.
Ethereum / Solidity
New contributors to the Solidity compiler team must be introduced by an existing team member who knows them professionally. All commits are GPG-signed and the release pipeline requires multiple maintainer sign-offs.
Additional Requirements for Security-Sensitive Projects
These requirements apply to all Committer and Maintainer nominations on designated projects, whether submitted through the normal process or the continuity process.
1. Identity Verification (beyond a GitHub account)
The nominee must be verifiably known to their sponsor. A GitHub account and contribution history alone are not sufficient — the sponsor must be able to confirm the nominee's real-world identity. Acceptable forms of verification:
- Co-employment: The nominee currently works or has previously worked at the same LFDT member organization as the sponsor
- Direct interaction: A video call or in-person meeting where the nominee's name, face, and professional affiliation were confirmed by at least one existing Maintainer or TSC member
- Documented professional relationship: A prior professional context with a verified identity (e.g., conference co-presenter, prior open source collaboration under a known identity)
The sponsor attestation included in the nomination PR must explicitly state which form of verification applies, with enough detail for the TSC to evaluate it.
2. CODEOWNERS Enforcement
Every Security-Sensitive project must maintain a .github/CODEOWNERS file with "Require review from Code Owners" enabled in branch protection. The CODEOWNERS file must ensure that PR approval requires someone with genuine knowledge of that specific repo — a person who maintains the consensus node should not be able to satisfy the codeowner requirement for an SDK repo, and vice versa.
For the Hiero SDKs specifically, the per-SDK codeowner team structure defined in Issue 1 implements this requirement. For other Security-Sensitive projects (consensus node, mirror node, JSON-RPC relay), the existing per-project maintainer team already provides this separation, and a CODEOWNERS file referencing that team is sufficient.
This requirement must be in place before any new nomination takes effect.
3. GPG Key Registration
While GPG commit signing is already required for all Hiero contributors under the existing DCO policy, Committers and Maintainers on Security-Sensitive projects must additionally register their public key as part of their nomination PR by adding it to governance/trusted-keys/<github-handle>.asc. This creates a governance-controlled mapping of identity to key: a commit signed with an unregistered key from a known Committer or Maintainer should be treated as a signal of potential account compromise.
4. Structured Offboarding Within 7 Days
When a Committer or Maintainer departs a Security-Sensitive project, the following must be completed within 7 days:
- GitHub access revoked via a PR to
config.yaml
- GPG key removed from
governance/trusted-keys/
- Any Trusted Publisher registrations they hold on package registries (npm, Maven Central, PyPI, crates.io, etc.) explicitly reviewed and updated
This addresses a known gap: npm and PyPI Trusted Publisher systems do not automatically revoke registry access when a person is removed from a GitHub team. Without explicit offboarding, a departed maintainer may retain the ability to publish packages long after their access should have been removed.
Note: PR #648 is currently open and proposes publishing guidelines covering npm, Maven Central, PyPI, crates.io, and other registries under the @hiero-ledger org. That PR should be reviewed alongside this proposal, and the offboarding requirements here should be reflected in whatever publishing policy it establishes.
Offboarding for inactivity. The standard 6-month inactivity threshold defined in roles-and-groups.md applies. A Committer or Maintainer who has made no meaningful contribution in 6 months and does not respond to a contact attempt within 2 weeks must be offboarded via the same 7-day process above. Project maintainers are responsible for monitoring inactivity and initiating the offboarding PR. The TSC may also initiate offboarding if maintainers fail to act.
References
Background
Several Hiero repositories sit in the critical path of real-value transactions on the Hedera network and any network built on Hiero. A malicious or compromised Committer or Maintainer with merge rights on any of these repos could approve code that silently harms end users — for example by:
Real money is at stake. This makes these repositories materially different from many open source projects and justifies a higher level of maintainer vetting than the standard contribution-based process alone provides.
Scope: What Qualifies as Security-Sensitive
A Hiero project should carry the Security-Sensitive designation if a malicious or negligent code change in that repo could directly cause financial loss to end users — specifically, projects that participate in the construction, signing, routing, or processing of value transfers on a Hiero-based network.
In scope — initial designated projects:
hiero-sdk-jshiero-sdk-javahiero-sdk-gohiero-sdk-rusthiero-sdk-pythonhiero-sdk-cpphiero-sdk-swifthiero-sdk-tckhiero-consensus-nodehiero-mirror-nodehiero-json-rpc-relayOut of scope — explicitly excluded:
hiero-did-sdk-js,hiero-did-sdk-python): These manage decentralized identifiers and verifiable credentials, not value transfers. They are governed through the Identity community.hiero-docs,hiero-website,hiero-cli, and similar repos do not participate in transaction processing.hiero-improvement-proposals,sdk-collaboration-hub,governance, and similar repos.The TSC is responsible for maintaining the designation list and may add or remove projects by vote as the ecosystem evolves.
Real-World Precedents
These are not theoretical risks. The broader software supply chain has seen exactly this kind of attack:
@rspack/core(500k weekly downloads) containing an XMRig cryptocurrency miner delivered via apostinstallscript.debug,chalk, and 17 other packages (collectively 2+ billion weekly downloads) by spoofing the npm support flow to capture live 2FA codes. Malicious versions were live for approximately 2 hours before being reverted.In all cases, the attack succeeded because the projects had no mechanism to verify who their maintainers really were beyond a GitHub account.
What Other Security-Sensitive Projects Do
Bitcoin Core
All merge commits must be GPG-signed by a maintainer whose public key is stored in the repository. A
verify-commitsscript checks every merge, creating a cryptographic chain of trust. New maintainers are selected by existing maintainers based on demonstrated competence over many months — their keys are added by the existing team, not self-declared.CNCF Graduated Projects
CNCF graduation criteria require documented governance, a defined security disclosure process, and organizational diversity among maintainers. Well-established graduated projects — Kubernetes being the canonical example — enforce multiple independent reviewers per PR by convention, preventing any single person from unilaterally merging code.
Apache Software Foundation
Any software release requires at least three active PMC (+1) votes. A single compromised or malicious maintainer cannot publish a release alone. The ASF also enforces diversity of organizational affiliation, so no single company can dominate a project's governance.
Ethereum / Solidity
New contributors to the Solidity compiler team must be introduced by an existing team member who knows them professionally. All commits are GPG-signed and the release pipeline requires multiple maintainer sign-offs.
Additional Requirements for Security-Sensitive Projects
These requirements apply to all Committer and Maintainer nominations on designated projects, whether submitted through the normal process or the continuity process.
1. Identity Verification (beyond a GitHub account)
The nominee must be verifiably known to their sponsor. A GitHub account and contribution history alone are not sufficient — the sponsor must be able to confirm the nominee's real-world identity. Acceptable forms of verification:
The sponsor attestation included in the nomination PR must explicitly state which form of verification applies, with enough detail for the TSC to evaluate it.
2. CODEOWNERS Enforcement
Every Security-Sensitive project must maintain a
.github/CODEOWNERSfile with "Require review from Code Owners" enabled in branch protection. The CODEOWNERS file must ensure that PR approval requires someone with genuine knowledge of that specific repo — a person who maintains the consensus node should not be able to satisfy the codeowner requirement for an SDK repo, and vice versa.For the Hiero SDKs specifically, the per-SDK codeowner team structure defined in Issue 1 implements this requirement. For other Security-Sensitive projects (consensus node, mirror node, JSON-RPC relay), the existing per-project maintainer team already provides this separation, and a CODEOWNERS file referencing that team is sufficient.
This requirement must be in place before any new nomination takes effect.
3. GPG Key Registration
While GPG commit signing is already required for all Hiero contributors under the existing DCO policy, Committers and Maintainers on Security-Sensitive projects must additionally register their public key as part of their nomination PR by adding it to
governance/trusted-keys/<github-handle>.asc. This creates a governance-controlled mapping of identity to key: a commit signed with an unregistered key from a known Committer or Maintainer should be treated as a signal of potential account compromise.4. Structured Offboarding Within 7 Days
When a Committer or Maintainer departs a Security-Sensitive project, the following must be completed within 7 days:
config.yamlgovernance/trusted-keys/This addresses a known gap: npm and PyPI Trusted Publisher systems do not automatically revoke registry access when a person is removed from a GitHub team. Without explicit offboarding, a departed maintainer may retain the ability to publish packages long after their access should have been removed.
Note: PR #648 is currently open and proposes publishing guidelines covering npm, Maven Central, PyPI, crates.io, and other registries under the
@hiero-ledgerorg. That PR should be reviewed alongside this proposal, and the offboarding requirements here should be reflected in whatever publishing policy it establishes.Offboarding for inactivity. The standard 6-month inactivity threshold defined in
roles-and-groups.mdapplies. A Committer or Maintainer who has made no meaningful contribution in 6 months and does not respond to a contact attempt within 2 weeks must be offboarded via the same 7-day process above. Project maintainers are responsible for monitoring inactivity and initiating the offboarding PR. The TSC may also initiate offboarding if maintainers fail to act.References