{"action":"closed","issue":{"url":"https://api.github.com/repos/michaelrsweet/testcups/issues/60","labels_url":"https://api.github.com/repos/michaelrsweet/testcups/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/michaelrsweet/testcups/issues/60/comments","events_url":"https://api.github.com/repos/michaelrsweet/testcups/issues/60/events","html_url":"https://github.com/michaelrsweet/testcups/issues/60","id":128620722,"number":60,"title":"[possible DoS] Sending a bad request to port 631 (answers a normal HTTP 400) keeps the connection open","user":{"login":"michaelrsweet","id":488103,"avatar_url":"https://avatars.githubusercontent.com/u/488103?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelrsweet","html_url":"https://github.com/michaelrsweet","followers_url":"https://api.github.com/users/michaelrsweet/followers","following_url":"https://api.github.com/users/michaelrsweet/following{/other_user}","gists_url":"https://api.github.com/users/michaelrsweet/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelrsweet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelrsweet/subscriptions","organizations_url":"https://api.github.com/users/michaelrsweet/orgs","repos_url":"https://api.github.com/users/michaelrsweet/repos","events_url":"https://api.github.com/users/michaelrsweet/events{/privacy}","received_events_url":"https://api.github.com/users/michaelrsweet/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/michaelrsweet/testcups/labels/P3%20-%20Moderate","name":"P3 - Moderate","color":"fbca04"}],"state":"closed","locked":false,"assignee":{"login":"michaelrsweet","id":488103,"avatar_url":"https://avatars.githubusercontent.com/u/488103?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelrsweet","html_url":"https://github.com/michaelrsweet","followers_url":"https://api.github.com/users/michaelrsweet/followers","following_url":"https://api.github.com/users/michaelrsweet/following{/other_user}","gists_url":"https://api.github.com/users/michaelrsweet/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelrsweet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelrsweet/subscriptions","organizations_url":"https://api.github.com/users/michaelrsweet/orgs","repos_url":"https://api.github.com/users/michaelrsweet/repos","events_url":"https://api.github.com/users/michaelrsweet/events{/privacy}","received_events_url":"https://api.github.com/users/michaelrsweet/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/michaelrsweet/testcups/milestones/1","html_url":"https://github.com/michaelrsweet/testcups/milestones/Stable","labels_url":"https://api.github.com/repos/michaelrsweet/testcups/milestones/1/labels","id":1542427,"number":1,"title":"Stable","description":"Bug scheduled for a future stable release.","creator":{"login":"michaelrsweet","id":488103,"avatar_url":"https://avatars.githubusercontent.com/u/488103?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelrsweet","html_url":"https://github.com/michaelrsweet","followers_url":"https://api.github.com/users/michaelrsweet/followers","following_url":"https://api.github.com/users/michaelrsweet/following{/other_user}","gists_url":"https://api.github.com/users/michaelrsweet/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelrsweet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelrsweet/subscriptions","organizations_url":"https://api.github.com/users/michaelrsweet/orgs","repos_url":"https://api.github.com/users/michaelrsweet/repos","events_url":"https://api.github.com/users/michaelrsweet/events{/privacy}","received_events_url":"https://api.github.com/users/michaelrsweet/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":56,"state":"open","created_at":"2016-01-25T18:49:57Z","updated_at":"2016-01-25T19:44:08Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-01-25T19:44:06Z","updated_at":"2016-01-25T19:44:08Z","closed_at":"2016-01-25T19:44:08Z","body":"Version: 1.1.17\nOriginally Reported By: evi.smokingcube\nOriginally Reported On: 2003-04-11 @ 16:57:13\n\nWhen somebody telnet to port 631 and sends a bad request (whatever code) it answers as it should with:\r\n<HTML><HEAD><TITLE>400 Bad Request</TITLE></HEAD><BODY><H1>Bad Request</H1>Bad Request</BODY></HTML>\r\nBut it doesn't disconnects the client (it just does nothing)\r\nIt should give a: Connection closed by foreign host (as other webservers do)\r\nWhen I kill the telnet session with a kill commando and run netstat -a on that machine I see:\r\ntcp       35      0 D57611F7.kabel.tele:ipp D57611F7.kabel.te:32930 CLOSE_WAIT\r\nWhen I let the telnet session end by itself sending a '^]' char, then 'quit' this comes in netstat:\r\ntcp        0      0 D57611F7.kabel.te:32931 D57611F7.kabel.tele:ipp FIN_WAIT2\r\nNow the biggest problem: It just stays there in netstat, it doesn't disappear so actually it's not ending the sessions (it does after a certain timeout. But it takes a remote port everytime.). I didn't put this in a loop but if somebody puts it in a loop it possibly should fill up the netstat table and possibly use all ports so other people can't use those ports anymore. Anyway, it should kill the connection immediately in place of just doing nothing.\n"}}