I am getting deserialization of untrusted data during checkmarx scan (which find security related vulnarabilities in code) in the onMessage() method which is taking JMS message:
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public void onMessage(Message message) {
log.debug("Code Run Started - In Queue");
if (message instanceof ObjectMessage) {
ObjectMessage objMes = (ObjectMessage) message;
try {
ChangeOperationType changeOperation = null;
changeOperation = (ChangeOperationType) objMes.getObject();
} catch (JMSException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
log.error("Message Type is incorrect (Not ChangeOperationType). ", e1);
}
try {
callBackEndpoint = message.getStringProperty(CRMCommonProcessing.CALLBACK_ENDPOINT_URI_PROPERTY);
} catch (JMSException e) {
log.error("CALLBACK ENDPOINT VALUE ERROR. ", e);
}
change(changeOperation);
} else {
log.error("WRONG MESSAGE TYPE GIVEN");
}
log.debug("Code Run Complete - In Queue");
}
Any fix or resolution for the issue?