After some digging in the WP source (specifically the trackback() function in wp-include/comment.php) I’ve tracked down what I think to be the culprit:
Using fsockopen() with fputs() doesn’t reveal anything suspicious about the request as it returns error code 0, a valid resource handle, and no error message. The oddness starts when discovering that no request has actually ever been made to the target server. However, passing the generated headers and data through curl reveals this:
curl: (18) transfer closed with 1 bytes remaining to read
<html><head><title>Error</title></head><body>The parameter is incorrect.</body></html>
It seems the following two lines from the header data are causing the request to be malformed:
POST /path/to/trackback HTTP/1.0
Host: some.host.com
I took those out and sent it through curl again with this result:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>0</error>
</response>
Perfect.
Hope this helps.
Cheers,
Kyle