33735 - [BC - Insight] Network split due to the sync issue in PP modul...
Description
Brief/Intro
Vulnerability Details
const queryFn = async (node: SyncNode) => {
const ip = node.ip ? node.ip : node.externalIp
const port = node.port ? node.port : node.externalPort
const resp = await http.post(`${ip}:${port}/sync-cycles`, data)
return resp
}
/* prettier-ignore */ if (logFlags.p2pNonFatal) info(`getCycles: ${start} - ${end}...`)
// use robust query so we can ask less nodes to get the cycles
let redundancy = 1
if (activeNodes.length > 5) redundancy = 2
if (activeNodes.length > 10) redundancy = 3
const { topResult: response, winningNodes: _responders } = await robustQuery(
activeNodes,
queryFn,
util.isDeepStrictEqual,
redundancy,
true
) // [1] get response from the `sync-cycles` endpoint.
// [TODO] Validate whatever came in
const cycles = response as P2P.CycleCreatorTypes.CycleRecord[]
const valid = validateCycles(cycles) // [1] validate response by the validateCycles function
if (valid) return cycles
}
}Impact Details
References
Proof of Concept
Previous33696 - [BC - Critical] Failure to validate golden ticket admin certNext33745 - [BC - Critical] A math quirk in Javascript allows anyone to tak...
Last updated
Was this helpful?