Skip to content

Commit

Permalink
Quick fixe for new duplicate share attacks
Browse files Browse the repository at this point in the history
letter is replace per 0 , in function compute hash.
Attacker compute one share and resend nonce after replace one zero per letter .
  • Loading branch information
perl5577 committed Mar 13, 2015
1 parent 3aafe49 commit 79f7ca9
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions lib/pool.js
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,16 @@ function handleMinerMethod(method, params, ip, portData, sendReply, pushMessage)
}

params.nonce = params.nonce.substr(0, 8).toLowerCase();
var pattern = new RegExp("^[0-9A-Fa-f]+$");
if ( pattern.test(params.nonce) == false ) {
var minerText = miner ? (' ' + miner.login + '@' + miner.ip) : '';
log('warn', logSystem, 'Nonce Attack: ' + JSON.stringify(params) + ' from ' + minerText);
perIPStats[miner.ip] = { validShares: 0, invalidShares: 66666666 };
miner.checkBan(false);
sendReply('Duplicate share');
return;
}


if (job.submissions.indexOf(params.nonce) !== -1){
var minerText = miner ? (' ' + miner.login + '@' + miner.ip) : '';
Expand Down

1 comment on commit 79f7ca9

@perl5577
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{"method": "login", "params": {"login": "496pFkHaZ92H64o2HA4DMejFZuVRL4U5e91sz3Gyn2U4dHrJMMGDpHHVFhg8beNRTijfi3NpGYYf52eoNRgFxSCvGsQAC6V", "pass": "x", "agent": "cpuminer-multi/0.1"}, "id": 1}
{"id":1,"jsonrpc":"2.0","error":null,"result":{"id":"872848642803728","job":{"blob":"0100b1f288a805a4f8277759cff91347b0a7d702049d01dee8a686bd144d99495dc3293161215e00000000ec4d397c937c2fdbe9bf8800065db8c888be746e3f96fa800de8edbc41b7617c01","job_id":"457016352307982","target":"81b90100"},"status":"OK"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"010091f488a80510c44f5a1f8b2bf823bf26e42c4dfa443e335ba75f0c339add08d5420b6679df00000000307ed108cde5d8546780bcaa0c06f62cc093b0a856778d82258bcda03e9a833d04","job_id":"462620624783448","target":"81b90100"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"010094f488a8050d0de74c462d5b450f32c604fd71fed99d5a15de8144de8b8abef68d079f9ce1000000002f3cc3c9feed886bd7bea455b5e29b67ef216e0c02230b96d7d0bfb1cde1aea001","job_id":"658787658857181","target":"81b90100"}}
{"jsonrpc":"2.0","method":"job","params":{"blob":"0100a0f488a8051d8b050b28d95f28f1f97e1b12073ecbcc9eb6b4e800eafdb85b01b82a7e1e6200000000ee0a455445c3865848a2c369d27af00852b864ae48577a7b0abc22c3a2c767e501","job_id":"415599911962635","target":"81b90100"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e0000", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000g", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000h", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000i", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000j", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000k", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000l", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000m", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e000n", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00g0", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gg", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gh", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gi", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gj", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gk", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gl", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gm", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00gn", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00h0", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00hg", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00hh", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00hi", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00hj", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"id":1,"jsonrpc":"2.0","error":null,"result":{"status":"OK"}}
{"method": "submit", "params": {"id": "872848642803728", "job_id": "415599911962635", "nonce": "1d0e00hk", "result": "7395530b7d2a43639bbc87ba142aa7be24237013f8228cd6b4fedc29a25e0000"}, "id":1}

{"jsonrpc":"2.0","method":"job","params":{"blob":"010085f588a8059d03b165a1bb38ad7a17a3832c901287d9f3872725298efc48a9ab665d4577f300000000171e08afac076b5cda7040835bf52316ae822c7e10bd8f8d3577f6c43197ccc702","job_id":"280964993382804","target":"81b90100"}}
{"id":1,"jsonrpc":"2.0","error":{"code":-1,"message":"Block expired"}}

Please sign in to comment.