Benno Evers created MESOS-9569: ---------------------------------- Summary: Missing master-side validation of UpdateOperationStatusMessage Key: MESOS-9569 URL: https://issues.apache.org/jira/browse/MESOS-9569 Project: Mesos Issue Type: Bug Reporter: Benno Evers
The master is currently not validating incoming `UpdateOperationStatusMessage`s, and is performing `CHECK()`s on the values of certain protobuf fields of the message. This means a malformed HTTP request can trigger a master crash. This can be reproduced e.g. by executing code like this on a master host: {noformat} import urllib.request rq = urllib.request.Request("http://localhost:5050/master/mesos.internal.UpdateOperationStatusMessage", headers={"Libprocess-From": "foo@127.0.1.1:5052"}, method="POST", data=b'\x1a\x02\x10\x01*\x05\n\x03xxx') rsp = urllib.request.urlopen(rq).read() {noformat} (where the posted data is just an UpdateOperationStatusMessage protobuf without a slave_id serialized as string) {noformat} F0213 13:14:22.507489 16492 master.cpp:8413] Check failed: update.has_slave_id() External resource provider is not supported yet {noformat} Looking at other internal messages, some of them already have a validation step implemented (i.e. RegisterSlaveMessage), so probably we should probably add something similar for this case. -- This message was sent by Atlassian JIRA (v7.6.3#76005)