#39913 [BC-Medium] No rate Limiting in resource-intensive endpoint
Description
Brief/Intro
Vulnerability Details
// @audit - No rate Limiting
shardus.registerExternalPut(
'query-certificate',
externalApiMiddleware,
async (req: Request, res: Response) => {
try {
nestedCountersInstance.countEvent('shardeum-penalty', 'called query-certificate')
const queryCertRes = await queryCertificateHandler(req, shardus)
if (ShardeumFlags.VerboseLogs) console.log('queryCertRes', queryCertRes)
if (queryCertRes.success) {
const successRes = queryCertRes as CertSignaturesResult
stakeCert = successRes.signedStakeCert
/* prettier-ignore */ nestedCountersInstance.countEvent('shardeum-staking', `queryCertificateHandler success`)
} else {
/* prettier-ignore */ nestedCountersInstance.countEvent('shardeum-staking', `queryCertificateHandler failed with reason: ${(queryCertRes as ValidatorError).reason}`)
}
res.json(Utils.safeJsonParse(Utils.safeStringify(queryCertRes)))
} catch (error) {
/* prettier-ignore */ if (logFlags.error) console.error('Error in processing query-certificate request:', error)
res.status(500).json({ error: 'Internal Server Error' })
}
}
)Recommendation
Impact Details
References
Proof of Concept
Proof of Concept
Previous#39921 [BC-Critical] accountDeserializer isn't type safeNext#39885 [BC-Critical] Signature forgery on behalf of network nodes using binary_sign_app_data endpoint
Was this helpful?