The register_routes function in wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php in the REST API in WordPress 4.7.x before 4.7.2 does not require an integer identifier, which allows remote attackers to modify arbitrary pages via a request for wp-json/wp/v2/posts followed by a numeric value and a non-numeric value, as demonstrated by the wp-json/wp/v2/posts/123?id=123helloworld URI.
{
"cpe": [
"cpe:2.3:a:wordpress:wordpress:4.7:*:*:*:*:*:*:*",
"cpe:2.3:a:wordpress:wordpress:4.7.1:*:*:*:*:*:*:*",
"cpe:2.3:a:wordpress:wordpress:4.7.2:*:*:*:*:*:*:*"
],
"source": [
"CPE_STRING",
"REFERENCES"
],
"extracted_events": [
{
"introduced": "4.7"
},
{
"last_affected": "4.7"
},
{
"introduced": "4.7.1"
},
{
"last_affected": "4.7.1"
},
{
"introduced": "4.7.2"
},
{
"last_affected": "4.7.2"
}
]
}{
"cpe": [
"cpe:2.3:a:wordpress:wordpress:4.7:*:*:*:*:*:*:*",
"cpe:2.3:a:wordpress:wordpress:4.7.1:*:*:*:*:*:*:*",
"cpe:2.3:a:wordpress:wordpress:4.7.2:*:*:*:*:*:*:*"
],
"source": "CPE_STRING",
"extracted_events": [
{
"introduced": "4.7"
},
{
"last_affected": "4.7"
},
{
"introduced": "4.7.1"
},
{
"last_affected": "4.7.1"
},
{
"introduced": "4.7.2"
},
{
"last_affected": "4.7.2"
}
]
}