Enforce session state

A fix for a security vulnerability reported by Maximilian Hils.
This commit is contained in:
Zaid Abdulla committed 2018-01-11 06:20:25 -08:00
1 parent bbe4def5cf
commit 779cb1b7a2
1 file changed
+13 -1
+13 -1
View File
@@ -895,7 +895,19 @@ listener = (httpRequest, httpResponse) ->
stats.concurrentRequests -= 1 stats.concurrentRequests -= 1
return return
return parsedRpc(sessionContext, rpc, parseWarnings) if sessionContext if sessionContext
if rpc.cpeRequest?.name is 'Inform' or
(!sessionContext.rpcRequest ^ !(rpc.cpeResponse or rpc.cpeFault))
logger.accessError({
message: 'Bad session state'
sessionContext: sessionContext
})
httpResponse.writeHead(400, {'Connection': 'close'})
httpResponse.end('Bad session state')
stats.concurrentRequests -= 1
return
return parsedRpc(sessionContext, rpc, parseWarnings)
if rpc.cpeRequest?.name isnt 'Inform' if rpc.cpeRequest?.name isnt 'Inform'
logger.accessError({ logger.accessError({