A matriz criada por .push em um loop tem o tamanho correto, mas apenas pressiona o último elemento na repetição

Estou referenciando uma variável global e analisando-a para enviar itens para uma pilha e, em seguida, retorno essa pilha para ser usada em outro lugar. A matriz retornada tem o comprimento correto, mas repete os itens do último elemento.

var global = {
    "param11": {
        "param21": {
            "param31": {
                "param4": "1",
                "param5": "2",
                "param6": "3",
            },
            "param32": {
                "param4": "4",
                "param5": "5",
                "param6": "6",

            }
        },
        "param22": {
            "param33": {
                "param4": "7",
                "param5": "8",
                "param6": "9",
            }
        }
    },
    "param12": {
        "param23": {
            "param34": {
                "param4": "10",
                "param5": "11",
                "param6": "12",
            },
            "param35": {
                "param4": "13",
                "param5": "14",
                "param6": "15",
            }
        }
    }
};

function getStack() {
    var obj = {};
    var stack=[];
    var json = JSON.parse(global);
    for(var param1 in json){
        for(var param2 in json[param1]){
            for(var param3 in json[param1][param2]){
                    obj.item1 = json[param1][param2][param3][param4];
                    obj.item2 = json[param1][param2][param3][param5];
                    obj.item3 = json[param1][param2][param3][param6];
                    stack.push(obj);
            }
        }
    }
    return stack;
}

Valor retornado:

[
    {"param4":"13", "param5":"14", "param6":"15"},
    {"param4":"13", "param5":"14", "param6":"15"},
    {"param4":"13", "param5":"14", "param6":"15"},
    {"param4":"13", "param5":"14", "param6":"15"},
    {"param4":"13", "param5":"14", "param6":"15"}
]

questionAnswers(1)

yourAnswerToTheQuestion