Такое определение на мой взгляд носит амбивалентный характер, потому что " умышленное внесение изменений" может возникнуть из-за пероначально существующей уязвимости кода, обнаруженной хакерами и используемой ими для создания эксплойтов.
Поэтому я бы не стал делать здесь каких-либо различий.
Бэкдоры могут существовать как в закрытом, так и в открытом коде.
Не все уязвимости можно использовать в качестве бэкдора для доступа к внутренним процессам приложения, но умышленное
негативное внесение изменений почти всегда осуществляется для создания таких бэкдоров. Уязвимости, которые используются в качестве бэкдоров, могут появляться только естественным путем в процессе разработки, потому что никто не говорит "разрабы встроили уязвимости в свою программу". Так вот, с позиции разрабов кошелька может быть два следуюших варианта: разрабы недостаточно тестировали свое приложение, использовали небезопасные библиотеки или что-то еще и сделали свой кошелек уязвимым для хакера, или разрабы банально встроили бэкдор в свою систему, чтобы в какой-то момент увести средства пользователей. В первом случае бэкдор создается хакерами, во втором самими разработчиками.